Android 信鴿推送整合
阿新 • • 發佈:2018-12-15
本文是基於3.+的版本,在整合4.+的版本中,整合
mid
包時遇到一個問題
Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 20 declared in library [com.tencent.mid:mid:4.0.7] C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\mid-4.0.7.aar\940566913b33e9d01791f180c556560b\AndroidManifest.xml as the library might be using APIs not available in 16 Suggestion: use a compatible library with a minSdk of at most 16, or increase this project's minSdk version to at least 20, or use tools:overrideLibrary="com.example.mid" to force usage (may lead to runtime failures)
要minSdk
最小為20,但是現階段4.+的手機系統版本還是有不少的,放棄是不可能的,在Manifest
中配置uses-sdk
也是無果,直接整合3.+也並無大礙。
建立應用
註冊登入官網,新增應用,拿到配置引數
匯入依賴
在app build.gradle
檔案下配置 以下內容
android { ...... defaultConfig { //信鴿官網上註冊的包名.注意application ID 和當前的應用包名以及 信鴿官網上註冊應用的包名必須一致。 applicationId "你的包名" ...... ndk { //根據需要 自行選擇新增的對應cpu型別的.so庫。 abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a' // 還可以新增 'x86', 'x86_64', 'mips', 'mips64' } manifestPlaceholders = [ XG_ACCESS_ID:"註冊應用的accessid", XG_ACCESS_KEY : "註冊應用的accesskey", ] ...... } ...... } dependencies { ...... //信鴿3.2.5之前版本無需單獨依賴'com.tencent.jg:jg:1.1',其它三個依賴必須有。 //信鴿3.2.6 版本 //完整的信鴿依賴四個都必須有,如果發生依賴衝突請根據對應的依賴版本號選擇高版本的依賴。(使用jcenter自動接入請確認libs中沒有信鴿的相關jar包) //信鴿jar compile 'com.tencent.xinge:xinge:3.2.6-release' //jg包 compile'com.tencent.jg:jg:1.1' //wup包 compile 'com.tencent.wup:wup:1.0.0.E-release' //mid包 compile 'com.tencent.mid:mid:4.0.6-release' }
- 注意,這裡是accessid,不是appid,Android端和ios端的引數配置是有區別的,後臺需要的配置引數也是不一樣的
如果遇到這個異常:
NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin.
則在 Project 根目錄的 gradle.properties 檔案中新增:
android.useDeprecatedNdk=true
開啟debug日誌資料
XGPushConfig.enableDebug(this,true);
token註冊
XGPushManager.registerPush(this, new XGIOperateCallback() {
@Override
public void onSuccess(Object data, int flag) {
//token在裝置解除安裝重灌的時候有可能會變
Log.d("TPush", "註冊成功,裝置token為:" + data);
}
@Override
public void onFail(Object data, int errCode, String msg) {
Log.d("TPush", "註冊失敗,錯誤碼:" + errCode + ",錯誤資訊:" + msg);
}
});
註冊成功會有列印,過濾"TPush"
設定賬號
XGPushManager.bindAccount(getApplicationContext(), "XINGE");
設定標籤
XGPushManager.setTag(this,"XINGE");
- 到此就基本完成了,不需要配置廠商通道,8.0也是測試通過的。
廠商通道呢,拿華為來說,去華為開發聯盟 註冊、登入、新增應用一頓操作(測試需要線上測試),然後拿著華為平臺的應用引數去信鴿管理臺配置引數,然後再在程式碼中配置華為的appid、依賴、啟動華為推送、日誌等 一頓操作。
之所以不詳細介紹呢,是因為不配置廠商也可以。 其次呢,因為國內廠商的各種系統定製,搞的我們開發者適配很苦惱。 內心也是抗拒的,但是在工作中,礙於資本主義的猖狂,還是做的很開心的(狗頭)。