Selaa lähdekoodia

华为推送

master
xuqm 1 vuosi sitten
vanhempi
commit
2cac9b9218
10 muutettua tiedostoa jossa 224 lisäystä ja 14 poistoa
  1. +96
    -0
      app/agconnect-services.json
  2. +3
    -0
      app/build.gradle
  3. +28
    -0
      app/src/main/java/cn/org/bjca/trust/pushdemo/MainActivity.kt
  4. +11
    -1
      build.gradle
  5. +4
    -1
      push/build.gradle
  6. +12
    -1
      push/proguard-rules.pro
  7. +19
    -2
      push/src/main/AndroidManifest.xml
  8. +13
    -0
      push/src/main/java/cn/org/bjca/trust/push/huawei/HwMessageService.kt
  9. +35
    -9
      push/src/main/java/cn/org/bjca/trust/push/provider/PushProvider.kt
  10. +3
    -0
      settings.gradle

+ 96
- 0
app/agconnect-services.json Näytä tiedosto

@@ -0,0 +1,96 @@
{
"agcgw":{
"backurl":"connect-drcn.hispace.hicloud.com",
"url":"connect-drcn.dbankcloud.cn",
"websocketbackurl":"connect-ws-drcn.hispace.dbankcloud.com",
"websocketurl":"connect-ws-drcn.hispace.dbankcloud.cn"
},
"agcgw_all":{
"CN":"connect-drcn.dbankcloud.cn",
"CN_back":"connect-drcn.hispace.hicloud.com",
"DE":"connect-dre.dbankcloud.cn",
"DE_back":"connect-dre.hispace.hicloud.com",
"RU":"connect-drru.hispace.dbankcloud.ru",
"RU_back":"connect-drru.hispace.dbankcloud.cn",
"SG":"connect-dra.dbankcloud.cn",
"SG_back":"connect-dra.hispace.hicloud.com"
},
"websocketgw_all":{
"CN":"connect-ws-drcn.hispace.dbankcloud.cn",
"CN_back":"connect-ws-drcn.hispace.dbankcloud.com",
"DE":"connect-ws-dre.hispace.dbankcloud.cn",
"DE_back":"connect-ws-dre.hispace.dbankcloud.com",
"RU":"connect-ws-drru.hispace.dbankcloud.ru",
"RU_back":"connect-ws-drru.hispace.dbankcloud.cn",
"SG":"connect-ws-dra.hispace.dbankcloud.cn",
"SG_back":"connect-ws-dra.hispace.dbankcloud.com"
},
"client":{
"cp_id":"890086000102126289",
"product_id":"388421841221324973",
"client_id":"1097147676853554624",
"client_secret":"9197FDE892D57B19533CBFB5BC34DD396EADE59916977DA0986C313B19F4B337",
"project_id":"388421841221324973",
"app_id":"107729977",
"api_key":"DAEDAN8kvIq9473K8CieVezr5XWTQe8EQcy5cEiP4lJCG/y3tN53/z9QAtCc0hfVHdEqRKU2QBIkKrGzbi5YgHV9yMjIl+7lMtj1lg==",
"package_name":"cn.org.bjca.trust.pushdemo"
},
"oauth_client":{
"client_id":"107729977",
"client_type":1
},
"app_info":{
"app_id":"107729977",
"package_name":"cn.org.bjca.trust.pushdemo"
},
"service":{
"analytics":{
"collector_url":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn",
"collector_url_ru":"datacollector-drru.dt.dbankcloud.ru,datacollector-drru.dt.hicloud.com",
"collector_url_sg":"datacollector-dra.dt.hicloud.com,datacollector-dra.dt.dbankcloud.cn",
"collector_url_de":"datacollector-dre.dt.hicloud.com,datacollector-dre.dt.dbankcloud.cn",
"collector_url_cn":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn",
"resource_id":"p1",
"channel_id":""
},
"edukit":{
"edu_url":"edukit.edu.cloud.huawei.com.cn",
"dh_url":"edukit.edu.cloud.huawei.com.cn"
},
"search":{
"url":"https://search-drcn.cloud.huawei.com"
},
"cloudstorage":{
"storage_url_sg_back":"https://agc-storage-dra.cloud.huawei.asia",
"storage_url_ru_back":"https://agc-storage-drru.cloud.huawei.ru",
"storage_url_ru":"https://agc-storage-drru.cloud.huawei.ru",
"storage_url_de_back":"https://agc-storage-dre.cloud.huawei.eu",
"storage_url_de":"https://ops-dre.agcstorage.link",
"storage_url":"https://agc-storage-drcn.platform.dbankcloud.cn",
"storage_url_sg":"https://ops-dra.agcstorage.link",
"storage_url_cn_back":"https://agc-storage-drcn.cloud.huawei.com.cn",
"storage_url_cn":"https://agc-storage-drcn.platform.dbankcloud.cn"
},
"ml":{
"mlservice_url":"ml-api-drcn.ai.dbankcloud.com,ml-api-drcn.ai.dbankcloud.cn"
}
},
"region":"CN",
"configuration_version":"3.0",
"appInfos":[
{
"package_name":"cn.org.bjca.trust.pushdemo",
"client":{
"app_id":"107729977"
},
"app_info":{
"package_name":"cn.org.bjca.trust.pushdemo",
"app_id":"107729977"
},
"oauth_client":{
"client_type":1,
"client_id":"107729977"
}
}
]
}

+ 3
- 0
app/build.gradle Näytä tiedosto

@@ -1,6 +1,7 @@
plugins { plugins {
id 'com.android.application' id 'com.android.application'
id 'org.jetbrains.kotlin.android' id 'org.jetbrains.kotlin.android'
id 'com.huawei.agconnect'
} }


android { android {
@@ -19,6 +20,8 @@ android {
manifestPlaceholders = [ manifestPlaceholders = [
XIAOMI_APP_ID : "2882303761520224743", XIAOMI_APP_ID : "2882303761520224743",
XIAOMI_APP_KEY : "5762022470743", XIAOMI_APP_KEY : "5762022470743",

HUAWEI_APP_ID : "107729977",
] ]
} }




+ 28
- 0
app/src/main/java/cn/org/bjca/trust/pushdemo/MainActivity.kt Näytä tiedosto

@@ -1,9 +1,14 @@
package cn.org.bjca.trust.pushdemo package cn.org.bjca.trust.pushdemo


import android.os.Bundle import android.os.Bundle
import android.text.TextUtils
import android.util.Log
import android.widget.TextView import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import cn.org.bjca.trust.push.PushSdk import cn.org.bjca.trust.push.PushSdk
import cn.org.bjca.trust.push.common.LogHelper
import com.huawei.hms.aaid.HmsInstanceId
import com.huawei.hms.common.ApiException


class MainActivity : AppCompatActivity() { class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
@@ -11,6 +16,29 @@ class MainActivity : AppCompatActivity() {
setContentView(R.layout.activity_main) setContentView(R.layout.activity_main)
findViewById<TextView>(R.id.tv).setOnClickListener { findViewById<TextView>(R.id.tv).setOnClickListener {
PushSdk.instance.register(this, "xuqm") PushSdk.instance.register(this, "xuqm")


getToken()

} }
} }
private fun getToken() {
// 创建一个新线程
object : Thread() {
override fun run() {
try {
// 从agconnect-services.json文件中读取APP_ID
val appId = "107729977"

// 输入token标识"HCM"
val tokenScope = "HCM"
val token = HmsInstanceId.getInstance(this@MainActivity).getToken(appId, tokenScope)
LogHelper.e( "get token:$token")

} catch (e: ApiException) {
LogHelper.e( "get token failed, $e")
}
}
}.start()
}
} }

+ 11
- 1
build.gradle Näytä tiedosto

@@ -1,7 +1,17 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.


buildscript {
dependencies {
// 增加Android Gradle插件版本号配置,{version}为实际的Gradle插件版本号,例如7.1.1。
classpath 'com.android.tools.build:gradle:7.1.1'
// 增加AGC插件配置,请您参见AGC插件依赖关系选择合适的AGC插件版本。
classpath 'com.huawei.agconnect:agcp:1.6.0.300'
}
}
plugins { plugins {
id 'com.android.application' version '7.3.1' apply false id 'com.android.application' version '7.3.1' apply false
id 'com.android.library' version '7.3.1' apply false id 'com.android.library' version '7.3.1' apply false
id 'org.jetbrains.kotlin.android' version '1.7.20' apply false id 'org.jetbrains.kotlin.android' version '1.7.20' apply false
} }
apply from: "config.gradle"
apply from: "config.gradle"

+ 4
- 1
push/build.gradle Näytä tiedosto

@@ -77,8 +77,11 @@ dependencies {
// 小米推送 // 小米推送
// implementation (name: 'MiPush_SDK_Client_5_3_0-C_3rd', ext: 'aar') // implementation (name: 'MiPush_SDK_Client_5_3_0-C_3rd', ext: 'aar')


}
// 华为推送
implementation 'com.huawei.hms:push:6.9.0.300'



}
// 这个是把源码打入aar包中的任务 // 这个是把源码打入aar包中的任务
task sourceJar(type: Jar) { task sourceJar(type: Jar) {
archiveClassifier.set('sources') archiveClassifier.set('sources')


+ 12
- 1
push/proguard-rules.pro Näytä tiedosto

@@ -124,4 +124,15 @@
-keep interface kotlin.Metadata { -keep interface kotlin.Metadata {
*; *;
} }
-keepattributes RuntimeVisibleAnnotations
-keepattributes RuntimeVisibleAnnotations

# 华为相关
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.huawei.hianalytics.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}

+ 19
- 2
push/src/main/AndroidManifest.xml Näytä tiedosto

@@ -6,7 +6,24 @@
android:name=".provider.PushProvider" android:name=".provider.PushProvider"
android:authorities="${applicationId}.szyx.push" android:authorities="${applicationId}.szyx.push"
android:exported="false" /> android:exported="false" />
<meta-data android:name="XIAOMI_APP_ID" android:value="_${XIAOMI_APP_ID}"/>
<meta-data android:name="XIAOMI_APP_KEY" android:value="${XIAOMI_APP_KEY}"/>
<service
android:name=".huawei.HwMessageService"
android:directBootAware="true"
android:exported="false">
<intent-filter>
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
</intent-filter>
</service>


<meta-data
android:name="XIAOMI_APP_ID"
android:value="_${XIAOMI_APP_ID}" />
<meta-data
android:name="XIAOMI_APP_KEY"
android:value="${XIAOMI_APP_KEY}" />
<meta-data
android:name="HUAWEI_APP_ID"
android:value="_${HUAWEI_APP_ID}" />
</application> </application>
</manifest> </manifest>

+ 13
- 0
push/src/main/java/cn/org/bjca/trust/push/huawei/HwMessageService.kt Näytä tiedosto

@@ -0,0 +1,13 @@
package cn.org.bjca.trust.push.huawei

import android.os.Bundle
import cn.org.bjca.trust.push.common.LogHelper
import com.huawei.hms.push.HmsMessageService

class HwMessageService: HmsMessageService() {

override fun onNewToken(p0: String?, p1: Bundle?) {
super.onNewToken(p0, p1)
LogHelper.e( "get token:$p0")
}
}

+ 35
- 9
push/src/main/java/cn/org/bjca/trust/push/provider/PushProvider.kt Näytä tiedosto

@@ -6,12 +6,16 @@ import android.content.UriMatcher
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.database.Cursor import android.database.Cursor
import android.net.Uri import android.net.Uri
import android.text.TextUtils
import android.util.Log
import androidx.sqlite.db.SupportSQLiteQueryBuilder import androidx.sqlite.db.SupportSQLiteQueryBuilder
import cn.org.bjca.trust.push.CrashHandler import cn.org.bjca.trust.push.CrashHandler
import cn.org.bjca.trust.push.common.CommonHelper import cn.org.bjca.trust.push.common.CommonHelper
import cn.org.bjca.trust.push.common.LogHelper import cn.org.bjca.trust.push.common.LogHelper
import cn.org.bjca.trust.push.db.DbHelper import cn.org.bjca.trust.push.db.DbHelper
import cn.org.bjca.trust.push.db.device.Device import cn.org.bjca.trust.push.db.device.Device
import com.huawei.hms.aaid.HmsInstanceId
import com.huawei.hms.common.ApiException
import com.xiaomi.push.it import com.xiaomi.push.it




@@ -34,15 +38,7 @@ class PushProvider : ContentProvider() {
CrashHandler.init() CrashHandler.init()
// 初始化唯一码 // 初始化唯一码
initDevice() initDevice()

val manifestField = context!!.packageManager.getApplicationInfo(
context!!.packageName,
PackageManager.GET_META_DATA
).metaData.getString("XIAOMI_APP_ID")

LogHelper.e("====>${manifestField}")


getHwToken()
// MiPushClient.registerPush(this, APP_ID, APP_KEY); // MiPushClient.registerPush(this, APP_ID, APP_KEY);


return true return true
@@ -112,4 +108,34 @@ class PushProvider : ContentProvider() {
else -> null else -> null
} }
} }

// 华为相关
private fun getHwToken() {
// 创建一个新线程
object : Thread() {
override fun run() {
try {


val appId = context!!.packageManager.getApplicationInfo(
context!!.packageName,
PackageManager.GET_META_DATA
).metaData.getString("HUAWEI_APP_ID")?.substring(1)
LogHelper.e("appId:$appId")

// 输入token标识"HCM"
val tokenScope = "HCM"
val token = HmsInstanceId.getInstance(context).getToken(appId, tokenScope)
LogHelper.e("get token:$token")

// 判断token是否为空
// if (!TextUtils.isEmpty(token)) {
//// sendRegTokenToServer(token)
// }
} catch (e: ApiException) {
LogHelper.e("get token failed, $e")
}
}
}.start()
}
} }

+ 3
- 0
settings.gradle Näytä tiedosto

@@ -1,5 +1,7 @@
pluginManagement { pluginManagement {
repositories { repositories {
maven {url 'https://developer.huawei.com/repo/'}

maven { maven {
url 'http://nexus.51trust.net/repository/android-group/' url 'http://nexus.51trust.net/repository/android-group/'
allowInsecureProtocol true allowInsecureProtocol true
@@ -13,6 +15,7 @@ pluginManagement {
dependencyResolutionManagement { dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
repositories { repositories {
maven {url 'https://developer.huawei.com/repo/'}
maven { maven {
url 'http://127.0.0.1:1022/repository/maven-public/' url 'http://127.0.0.1:1022/repository/maven-public/'
allowInsecureProtocol true allowInsecureProtocol true


Loading…
Peruuta
Tallenna