關(guān)于信鴿SDK(騰訊云推送)使用指北

  • 作者:Mr.Egg
  • 狀態(tài):完成
  • 轉(zhuǎn)載請注明

關(guān)于信鴿的使用,確實(shí)遇到一些坑,文檔里沒提到的。在這里記錄一下,直接上干貨。

首先,和百度云的SDK一樣,下載,導(dǎo)入給的Lib。
注意?。。?要放在src/java下的jniLibs,因為在AS開發(fā)中.so文件放在lib中雖然編譯成功,但是運(yùn)行會提示“can not load library from so file”。這一點(diǎn)害我找bug找了好久。

項目結(jié)構(gòu)

其次修改manifest文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.mregg.txpushtest">

    <!-- 【必須】 信鴿SDK所需權(quán)限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <!-- 【可選】 信鴿SDK所需權(quán)限 -->
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BATTERY_STATS" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- 【必須】 信鴿receiver廣播接收 -->
        <receiver
            android:name="com.tencent.android.tpush.XGPushReceiver"
            android:process=":xg_service_v2" >
            <intent-filter android:priority="0x7fffffff" >
                <!-- 【必須】 信鴿SDK的內(nèi)部廣播 -->
                <action android:name="com.tencent.android.tpush.action.SDK" />
                <action android:name="com.tencent.android.tpush.action.INTERNAL_PUSH_MESSAGE" />
                <!-- 【必須】 系統(tǒng)廣播:開屏和網(wǎng)絡(luò)切換 -->
                <action android:name="android.intent.action.USER_PRESENT" />
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

                <!-- 【可選】 一些常用的系統(tǒng)廣播,增強(qiáng)信鴿service的復(fù)活機(jī)會,請根據(jù)需要選擇。當(dāng)然,你也可以添加APP自定義的一些廣播讓啟動service -->
                <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
                <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
                <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
            </intent-filter>
        </receiver>

        <!-- 【必須】 (2.30及以上版新增)展示通知的activity -->
        <!-- 【注意】 如果被打開的activity是啟動模式為SingleTop,SingleTask或SingleInstance,請根據(jù)通知的異常自查列表第8點(diǎn)處理-->
        <activity
            android:name="com.tencent.android.tpush.XGPushActivity"
            android:exported="false" >
            <intent-filter>
                <!-- 若使用AndroidStudio,請設(shè)置android:name="android.intent.action"-->
                <action android:name="android.intent.action" />
            </intent-filter>
        </activity>

        <!-- 【必須】 信鴿service -->
        <service
            android:name="com.tencent.android.tpush.service.XGPushService"
            android:exported="true"
            android:persistent="true"
            android:process=":xg_service_v2" />

        <!-- 【必須】 通知service,此選項有助于提高抵達(dá)率 -->
        <service
            android:name="com.tencent.android.tpush.rpc.XGRemoteService"
            android:exported="true" >
            <intent-filter>
                <action android:name="YourPackage.PUSH_ACTION" />
            </intent-filter>
        </service>

        <!-- 【必須】 請將YOUR_ACCESS_ID修改為APP的AccessId,“21”開頭的10位數(shù)字,中間沒空格 -->
        <meta-data
            android:name="XG_V2_ACCESS_ID"
            android:value="AccessId" />
        <!-- 【必須】 請將YOUR_ACCESS_KEY修改為APP的AccessKey,“A”開頭的12位字符串,中間沒空格 -->
        <meta-data
            android:name="XG_V2_ACCESS_KEY"
            android:value="AccessKey" />

    </application>

</manifest>

簡簡單單,注意把我的MainActivity注冊刪掉,接著把YourPackage替換成你項目對應(yīng)的包,然后在最后的AccessIdAccessKey替換成你注冊對應(yīng)的key即可。

最后,在MainActivity中加入就完成了這個程序。

Context context = getApplicationContext();
XGPushManager.registerPush(context);

綜上,覺得騰訊的方便,但是后臺不好看,小坑也多。百度后臺好看,要改要寫的地方也比較多。

完結(jié)撒花!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 作者:Mr.Egg狀態(tài):完成轉(zhuǎn)載請注明 百度云推送是向開發(fā)者提供推送服務(wù)的SDK,懶著講廢話直接上干貨。 首先,注...
    b22523051261閱讀 1,776評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,366評論 25 708
  • 2016-2017年是插件化遍地開花的一年,各家大廠都開源了自己的插件化框架、熱修復(fù)技術(shù),網(wǎng)上也已經(jīng)有許多介紹和分...
    Geek帆哥閱讀 3,015評論 2 9
  • 假設(shè)要加載磁盤上的一個文件,并以二進(jìn)制形式讀取文件的數(shù)據(jù)。若要從健壯性的角度考慮,需得考慮兩種異常情況: 加載文件...
    _張逸_閱讀 591評論 0 5
  • 與意見不同的人爭執(zhí),禮貌而堅定。 這不是我說的,是從別處看來的,深感為吾之所缺,是以記之。
    路一思閱讀 179評論 0 0

友情鏈接更多精彩內(nèi)容