diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..db21d65
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+PushDemo
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1dd5584..4ad2ae9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -2,6 +2,9 @@
+
+
+
+
@@ -29,7 +33,7 @@
+ android:exported="true" />
\ No newline at end of file
diff --git a/app/src/main/java/cn/org/bjca/trust/pushdemo/MainActivity.kt b/app/src/main/java/cn/org/bjca/trust/pushdemo/MainActivity.kt
index f2b8192..db61079 100644
--- a/app/src/main/java/cn/org/bjca/trust/pushdemo/MainActivity.kt
+++ b/app/src/main/java/cn/org/bjca/trust/pushdemo/MainActivity.kt
@@ -1,17 +1,16 @@
package cn.org.bjca.trust.pushdemo
+import android.annotation.SuppressLint
import android.os.Bundle
-import android.provider.MediaStore
-import androidx.activity.result.contract.ActivityResultContracts
import cn.org.bjca.trust.push.PushSdk
-import cn.org.bjca.trust.push.common.GraphicHelper
import cn.org.bjca.trust.push.common.LogHelper
-import cn.org.bjca.trust.push.common.MessageHelper
import cn.org.bjca.trust.push.common.SendMessageHelper
import cn.org.bjca.trust.push.enums.MsgType
-import cn.org.bjca.trust.push.message.bean.PictureMessage
+import cn.org.bjca.trust.push.enums.OsType
+import cn.org.bjca.trust.push.message.bean.TextMessage
+import cn.org.bjca.trust.push.message.callback.CallbackListener
+import cn.org.bjca.trust.push.message.msg.Message
import cn.org.bjca.trust.pushdemo.databinding.ActivityMainBinding
-import com.xuqm.base.extensions.loge
import com.xuqm.base.ui.BaseActivity
class MainActivity : BaseActivity() {
@@ -21,32 +20,63 @@ class MainActivity : BaseActivity() {
override fun initView(savedInstanceState: Bundle?) {
super.initView(savedInstanceState)
- PushSdk.instance.register("xuqinmin")
+ PushSdk.instance.setMsgCallback(object : CallbackListener {
+ override fun sendComplete(msg: Message) {
+ }
+ override fun sendError(code: String, msg: Message) {
+ }
- val r = registerForActivityResult(ActivityResultContracts.GetContent()) {
- it.loge()
- SendMessageHelper.sendImageMessage(
- "xuqinmin", MediaStore.Images.Media.getBitmap(
- contentResolver, it
- )
- )
- }
+ @SuppressLint("SetTextI18n")
+ override fun messageArrived(msg: Message) {
+ if (msg.msgType == MsgType.Text) {
+ binding.register.text =
+ "收到来自${msg.fromClientId}的消息:${(msg as TextMessage).text}"
+ }
+ }
- binding.register.setOnClickListener {
- val m = MessageHelper.getMessageForPage(1, 10)
- LogHelper.e(m[0])
- if (m[0].msgType == MsgType.Image) {
- binding.iv.setImageBitmap(GraphicHelper.base64ToBitmap((m[0] as PictureMessage).thumbnail))
+ override fun connected() {
}
- }
+
+ override fun connectionKicked(var1: OsType) {
+ }
+
+ override fun connectError(code: String) {
+ LogHelper.e(code)
+ }
+
+ override fun connectionLost() {
+ }
+
+ override fun exceptionCause(var1: Throwable) {
+ }
+ })
+
binding.send.setOnClickListener {
- SendMessageHelper.sendTextMessage("xuqm", "hello${System.currentTimeMillis()}")
-// r.launch("image/*")
+
+// val i = Intent(Intent.ACTION_VIEW);
+// val guanzhu_URL = "http://weixin.qq.com/r/STn7497EyYO2rZqA92xb";
+//// val guanzhu_URL = "http://weixin.qq.com/q/02XqFpkZY9c-C1uvxyxAco";
+// i.data = Uri.parse(guanzhu_URL);
+// i.setPackage("com.tencent.mm");
+// i.putExtra(Intent.EXTRA_SUBJECT, "Share");
+// i.flags = Intent.FLAG_ACTIVITY_NEW_TASK;
+// startActivity(i);
+//
+//
+
+
+
+ SendMessageHelper.sendTextMessage(
+ if (binding.user.text.isNullOrEmpty()) "xuqm" else binding.user.text.toString(),
+ "hello${System.currentTimeMillis()}"
+ )
}
binding.sendG.setOnClickListener {
- SendMessageHelper.sendTextMessage("G_hfisoahfisaohdisa", "hello,Group_${System.currentTimeMillis()}")
-// r.launch("image/*")
+ SendMessageHelper.sendTextMessage(
+ "G_hfisoahfisaohdisa",
+ "hello,Group_${System.currentTimeMillis()}"
+ )
}
}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index c166f2d..aa62492 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -10,16 +10,26 @@
+ app:layout_constraintTop_toTopOf="parent" />
-
+
-
-
\ No newline at end of file
diff --git a/push/src/main/java/cn/org/bjca/trust/push/api/PushService.kt b/push/src/main/java/cn/org/bjca/trust/push/api/PushService.kt
index f8526e4..4dc8a75 100644
--- a/push/src/main/java/cn/org/bjca/trust/push/api/PushService.kt
+++ b/push/src/main/java/cn/org/bjca/trust/push/api/PushService.kt
@@ -5,5 +5,5 @@ import retrofit2.http.Path
interface PushService {
@GET("hello/{id}")
- suspend fun getArticle(@Path("id") id: Int): HttpResult
+ suspend fun getArticle(@Path("id") id: String): HttpResult
}
\ No newline at end of file
diff --git a/push/src/main/java/cn/org/bjca/trust/push/manager/PushSdkManager.kt b/push/src/main/java/cn/org/bjca/trust/push/manager/PushSdkManager.kt
index a5a0aad..c8dc081 100644
--- a/push/src/main/java/cn/org/bjca/trust/push/manager/PushSdkManager.kt
+++ b/push/src/main/java/cn/org/bjca/trust/push/manager/PushSdkManager.kt
@@ -2,13 +2,17 @@ package cn.org.bjca.trust.push.manager
import android.content.Context
import cn.org.bjca.trust.push.BuildConfig
+import cn.org.bjca.trust.push.api.PushService
import cn.org.bjca.trust.push.common.DeviceHelper
+import cn.org.bjca.trust.push.common.LogHelper
+import cn.org.bjca.trust.push.di.manager.HttpManager
import cn.org.bjca.trust.push.enums.OsType
import cn.org.bjca.trust.push.kit.SdkInterface
import cn.org.bjca.trust.push.message.ImCallback
import cn.org.bjca.trust.push.message.ImManager
import cn.org.bjca.trust.push.message.callback.CallbackListener
import cn.org.bjca.trust.push.message.client.ImConnectOptions
+import kotlinx.coroutines.runBlocking
class PushSdkManager : SdkInterface {
@@ -23,15 +27,15 @@ class PushSdkManager : SdkInterface {
private fun registerPush(userId: String) {}
private fun registerIm(userId: String) {
-// runBlocking {
-// HttpManager.getApi(
-// HttpManager.getAppComponent("http://192.168.115.137:8080"),
-// PushService::class.java
-// )
-// .getArticle(42)
-// }.also {
-// LogHelper.e(it, "初始化登录")
-// }
+ runBlocking {
+ HttpManager.getApi(
+ HttpManager.getAppComponent("https://xuqinmin.com"),
+ PushService::class.java
+ )
+ .getArticle(userId)
+ }.also {
+ LogHelper.e(it, "初始化登录")
+ }
//先关闭已有连接
if (ImManager.instance.isConnect() || ImManager.instance.isConnecting()) {
@@ -40,7 +44,7 @@ class PushSdkManager : SdkInterface {
if (::imConnectOptions.isInitialized) {
imConnectOptions.clientId = userId
- imConnectOptions.host = "192.168.115.137"
+ imConnectOptions.host = "114.115.203.60"
imConnectOptions.port = 18883
imConnectOptions.deviceId = DeviceHelper.getDeviceId()
imConnectOptions.token = "token"
@@ -48,7 +52,7 @@ class PushSdkManager : SdkInterface {
imConnectOptions.sdkVersion = BuildConfig.versionName
} else {
imConnectOptions = ImConnectOptions(
- "192.168.115.137",
+ "114.115.203.60",
18883,
userId,
DeviceHelper.getDeviceId(),
diff --git a/push/src/main/java/cn/org/bjca/trust/push/message/client/ImClient.kt b/push/src/main/java/cn/org/bjca/trust/push/message/client/ImClient.kt
index 15702a6..6bc8112 100644
--- a/push/src/main/java/cn/org/bjca/trust/push/message/client/ImClient.kt
+++ b/push/src/main/java/cn/org/bjca/trust/push/message/client/ImClient.kt
@@ -53,8 +53,9 @@ class ImClient : ImClientInterface {
} catch (e: MqttException) {
LogHelper.e("--------", e)
connectOptions.callback?.connectError(ERROR_CONNECTED)
+ } finally{
+ isConnecting = false
}
- isConnecting = false
}.start()
}
@@ -68,7 +69,7 @@ class ImClient : ImClientInterface {
options = MqttConnectOptions()
options.isCleanSession = true
options.userName = connectOptions.clientId
- options.password = "xuqinmin".toCharArray()
+ options.password = connectOptions.clientId.toCharArray()
options.connectionTimeout = connectOptions.connectTimeOutSecond
options.keepAliveInterval = connectOptions.pingInterval
options.isAutomaticReconnect = true
diff --git a/push/src/main/java/cn/org/bjca/trust/push/message/msg/Message.kt b/push/src/main/java/cn/org/bjca/trust/push/message/msg/Message.kt
index 450c076..c9b6aab 100644
--- a/push/src/main/java/cn/org/bjca/trust/push/message/msg/Message.kt
+++ b/push/src/main/java/cn/org/bjca/trust/push/message/msg/Message.kt
@@ -7,6 +7,7 @@ abstract class Message {
var messageId: String? = null
var timestamp: Long = 0
var fromClientId: String? = null
+ var describe: String? = null
var toClientId: String? = null
var target: String? = null
var msgType: MsgType = MsgType.UNKNOWN
@@ -19,6 +20,7 @@ abstract class Message {
this.messageId = sendMessage.messageId
this.timestamp = sendMessage.timestamp
this.fromClientId = sendMessage.fromClientId
+ this.describe = sendMessage.fromClientId
this.toClientId = sendMessage.toClientId
this.target = sendMessage.target
this.tenantNo = sendMessage.tenantNo
@@ -32,6 +34,7 @@ abstract class Message {
val sb = StringBuffer()
sb.append("id: $messageId\n")
sb.append("from: $fromClientId\n")
+ sb.append("describe: $describe\n")
sb.append("to: $toClientId\n")
sb.append("type: $msgType\n")
sb.append("timestamp: $timestamp\n")