소스 검색

外网访问

master
xuqm 1 년 전
부모
커밋
5147deb599
8개의 변경된 파일100개의 추가작업 그리고 56개의 파일을 삭제
  1. +1
    -0
      .idea/.name
  2. +5
    -1
      app/src/main/AndroidManifest.xml
  3. +55
    -25
      app/src/main/java/cn/org/bjca/trust/pushdemo/MainActivity.kt
  4. +17
    -16
      app/src/main/res/layout/activity_main.xml
  5. +1
    -1
      push/src/main/java/cn/org/bjca/trust/push/api/PushService.kt
  6. +15
    -11
      push/src/main/java/cn/org/bjca/trust/push/manager/PushSdkManager.kt
  7. +3
    -2
      push/src/main/java/cn/org/bjca/trust/push/message/client/ImClient.kt
  8. +3
    -0
      push/src/main/java/cn/org/bjca/trust/push/message/msg/Message.kt

+ 1
- 0
.idea/.name 파일 보기

@@ -0,0 +1 @@
PushDemo

+ 5
- 1
app/src/main/AndroidManifest.xml 파일 보기

@@ -2,6 +2,9 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<queries>
<package android:name="com.tencent.mm" />
</queries>
<application
android:name="cn.org.bjca.trust.Myapplication"
android:allowBackup="true"
@@ -14,6 +17,7 @@
android:theme="@style/Theme.PushDemo"
android:usesCleartextTraffic="true"
tools:targetApi="31">

<activity
android:name=".LoginActivity"
android:exported="true">
@@ -29,7 +33,7 @@
</activity>
<activity
android:name=".MainActivity"
android:exported="true"/>
android:exported="true" />
</application>

</manifest>

+ 55
- 25
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<ActivityMainBinding>() {
@@ -21,32 +20,63 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {

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()}"
)
}

}


+ 17
- 16
app/src/main/res/layout/activity_main.xml 파일 보기

@@ -10,16 +10,26 @@

<TextView
android:id="@+id/register"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="注册im服务"
app:layout_constraintBottom_toBottomOf="parent"
android:text="新消息"
android:layout_marginTop="15dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.08" />
app:layout_constraintTop_toTopOf="parent" />

<TextView
<EditText
android:id="@+id/user"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginBottom="10dp"
android:text="xuqm"
android:hint="请输入消息接收人"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toTopOf="@+id/send"
/>
<Button
android:id="@+id/send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -29,7 +39,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.188" />
<TextView
<Button
android:id="@+id/sendG"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -38,15 +48,6 @@
android:layout_marginTop="10dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/send" />
<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
android:id="@+id/iv"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/send"
/>

</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

+ 1
- 1
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<String>
suspend fun getArticle(@Path("id") id: String): HttpResult<String>
}

+ 15
- 11
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(),


+ 3
- 2
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


+ 3
- 0
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")


불러오는 중...
취소
저장