@@ -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" | |||||
} | |||||
} | |||||
] | |||||
} |
@@ -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", | |||||
] | ] | ||||
} | } | ||||
@@ -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() | |||||
} | |||||
} | } |
@@ -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" |
@@ -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') | ||||
@@ -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.**{*;} |
@@ -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> |
@@ -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") | |||||
} | |||||
} |
@@ -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() | |||||
} | |||||
} | } |
@@ -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 | ||||