Procházet zdrojové kódy

华为推送

master
xuqm před 1 rokem
rodič
revize
2cac9b9218
10 změnil soubory, kde provedl 224 přidání a 14 odebrání
  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 Zobrazit soubor

@@ -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 Zobrazit soubor

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

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

HUAWEI_APP_ID : "107729977",
]
}



+ 28
- 0
app/src/main/java/cn/org/bjca/trust/pushdemo/MainActivity.kt Zobrazit soubor

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

import android.os.Bundle
import android.text.TextUtils
import android.util.Log
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
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() {
override fun onCreate(savedInstanceState: Bundle?) {
@@ -11,6 +16,29 @@ class MainActivity : AppCompatActivity() {
setContentView(R.layout.activity_main)
findViewById<TextView>(R.id.tv).setOnClickListener {
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 Zobrazit soubor

@@ -1,7 +1,17 @@
// 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 {
id 'com.android.application' 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
}
apply from: "config.gradle"
apply from: "config.gradle"

+ 4
- 1
push/build.gradle Zobrazit soubor

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

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


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


+ 12
- 1
push/proguard-rules.pro Zobrazit soubor

@@ -124,4 +124,15 @@
-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 Zobrazit soubor

@@ -6,7 +6,24 @@
android:name=".provider.PushProvider"
android:authorities="${applicationId}.szyx.push"
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>
</manifest>

+ 13
- 0
push/src/main/java/cn/org/bjca/trust/push/huawei/HwMessageService.kt Zobrazit soubor

@@ -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 Zobrazit soubor

@@ -6,12 +6,16 @@ import android.content.UriMatcher
import android.content.pm.PackageManager
import android.database.Cursor
import android.net.Uri
import android.text.TextUtils
import android.util.Log
import androidx.sqlite.db.SupportSQLiteQueryBuilder
import cn.org.bjca.trust.push.CrashHandler
import cn.org.bjca.trust.push.common.CommonHelper
import cn.org.bjca.trust.push.common.LogHelper
import cn.org.bjca.trust.push.db.DbHelper
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


@@ -34,15 +38,7 @@ class PushProvider : ContentProvider() {
CrashHandler.init()
// 初始化唯一码
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);

return true
@@ -112,4 +108,34 @@ class PushProvider : ContentProvider() {
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 Zobrazit soubor

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

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


Načítá se…
Zrušit
Uložit