信鴿推送

最近在作推送,剛開始接到推送的時候,首先想到了極光推送,後來讓用百度推送。程序員都知道,需求不斷改,最後變成了信鴿推送。話說對信鴿推送真的是沒用過。不過集成第三方的方式都大差不差。還好不負所望,集成了信鴿推送。因爲最近很忙,每天1點睡覺。雖然今天一樣加班到十點,仍是想記錄一下信鴿推送的簡單集成。也但願能對要作信鴿推送的新童鞋有所幫助。(我寫文字比較囉嗦,還望原諒。寫的細了也防止之後本身忘記了,嘿嘿!:)).
話說官方文檔真的是老了,最後看看官方Demo,不過在下認爲還有不少是須要上網搜索來幫助的。
廢話很少說,看看我集成的結果:
圖片描述android

下面說說集成過程。
首先就是去找到官方文檔,沒作過的話,就先按照文檔一步一步來,雖然文檔介紹的並不深刻,不過仍是很通俗易懂的,各類問題後續再解決。百度一下騰訊信鴿進入官網登陸下,找到開發者中心:
圖片描述程序員

如圖根據AndroidSDK快速接入一個Demo。後續能夠進行完整接入。
我在這裏只是簡單集成一下,至於不少其餘的自定義的,因爲明天還要加班,今天就先不寫了。網絡

圖片描述
接入一個應用。根據提示填寫就能夠了。ide

圖片描述

接入應用完成後就是這樣了。
在應用配置裏能夠看到ACCESS ID和ACCESS KEY用來集成用的,要在清單文件裏填寫。
下面就是進行AndroidManifest.xml配置和集成.so文件及jar包了,比較簡單,直接複製官方Demo裏的就好了。學習

圖片描述

這些SDK裏面都有,按照說明放入對應文件夾了便可。spa

<!-- 【必須】 信鴿SDK所需權限 -->
    <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.RESTART_PACKAGES" />
    <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.GET_TASKS" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.VIBRATE" /><!-- 【可選】 信鴿SDK所需權限 -->
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BATTERY_STATS" />

按照說明配置權限和必要的服務及廣播.net

<!-- 【必須】 (2.30及以上版新增)展現通知的activity -->
        <activity
            android:name="com.tencent.android.tpush.XGPushActivity"
            android:theme="@android:style/Theme.Translucent"
            android:exported="false" >
            <intent-filter>
                <!-- 若使用AndroidStudio,請設置android:name="android.intent.action"-->
               <span style="background-color: rgb(0, 153, 0);"> <action android:name="android.intent.action" /></span>
            </intent-filter>
        </activity>

        <!-- 【必須】 信鴿receiver廣播接收 -->
        <receiver
            android:name="com.tencent.android.tpush.XGPushReceiver"
            android:process=":xg_service_v2" >
            <intent-filter android:priority="0x7fffffff" >

                <!-- 【必須】 信鴿SDK的內部廣播 -->
                <action android:name="com.tencent.android.tpush.action.SDK" />
                <action android:name="com.tencent.android.tpush.action.INTERNAL_PUSH_MESSAGE" />
                <!-- 【必須】 系統廣播:網絡切換 -->
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

                <!-- 【可選】 系統廣播:開屏 -->
                <action android:name="android.intent.action.USER_PRESENT" />

                <!-- 【可選】 一些經常使用的系統廣播,加強信鴿service的復活機會,請根據須要選擇。固然,你也能夠添加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>
            <!-- 【可選】 usb相關的系統廣播,加強信鴿service的復活機會,請根據須要添加 -->
            <intent-filter android:priority="0x7fffffff" >
                <action android:name="android.intent.action.MEDIA_UNMOUNTED" />
                <action android:name="android.intent.action.MEDIA_REMOVED" />
                <action android:name="android.intent.action.MEDIA_CHECKING" />
                <action android:name="android.intent.action.MEDIA_EJECT" />

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

        <!-- 【必須】 通知service,其中android:name部分要改成當前包名 -->
        <service
            android:name="com.tencent.android.tpush.rpc.XGRemoteService"
            android:exported="true" >
            <intent-filter>
                <!-- 【必須】 請修改成當前APP名包.PUSH_ACTION,如demo的包名爲:com.qq.xgdemo -->
                <action android:name="</span><span style="font-family:Microsoft YaHei;font-size:18px;color:#3366ff;">com.student.kevin.xingepushdemo</span><span style="font-size: 18px;">.PUSH_ACTION" />
            </intent-filter>
        </service>

        <!-- 已廢棄,可刪除之;若不刪除也不會有任何反作用 -->
        <!--<service
            android:name="com.tencent.android.tpush.service.XGDaemonService"
            android:process=":qq_push_daemon" />
        -->
        <!-- 【可選】信鴿拉起其餘APP應用,若應用在本地找不到能夠自動下載 -->
        <!--
              <service
            android:name="com.tencent.android.tpush.XGDownloadService"
            android:enabled="true"
            android:exported="false" />
        -->
        <!-- 【可選】APP實現的Receiver,用於接收消息透傳和操做結果的回調,請根據須要添加 -->
        <!-- YOUR_PACKAGE_PATH.CustomPushReceiver須要改成本身的Receiver: -->
        <receiver android:name="</span><span style="color:#3366ff;font-size: 18px;">com.student.kevin.xingepushdemo</span><span style="font-size: 18px;">.MessageReceiver"
            android:exported="true" >
            <intent-filter>
                <!-- 接收消息透傳 -->
                <action android:name="com.tencent.android.tpush.action.PUSH_MESSAGE" />
                <!-- 監聽註冊、反註冊、設置/刪除標籤、通知被點擊等處理結果 -->
                <action android:name="com.tencent.android.tpush.action.FEEDBACK" />
            </intent-filter>
        </receiver>

        <!-- 【必須】 請修改成APP的AccessId,「21」開頭的10位數字,中間沒空格 -->
        <meta-data
            android:name="XG_V2_ACCESS_ID"
            android:value="</span><span style="color:#6633ff;font-size: 18px;">2100216288</span><span style="font-size: 18px;">" />
        <!-- 【必須】 請修改成APP的AccessKey,「A」開頭的12位字符串,中間沒空格 -->
        <meta-data
            android:name="XG_V2_ACCESS_KEY"
            android:value="</span><span style="color:#3366ff;font-size: 18px;">AKE58N64A5JH</span><span style="font-size: 18px;">" />

好了,配置完成了,下面就是再代碼中註冊了,MainActivity的onCreat方法中註冊:3d

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        XGPushConfig.enableDebug(getApplicationContext(),true);
        setContentView(R.layout.activity_main);
        Context context = getApplicationContext();
//        XGPushManager.registerPush(context);//直接註冊,沒法肯定是否註冊成功
        //想要知道是否註冊成功就添加回調。
        XGPushManager.registerPush(context, new XGIOperateCallback() {
            @Override
            public void onSuccess(Object data, int flag) {
                Log.d("TPush", "註冊成功,設備token爲:" + data);
            }

            @Override
            public void onFail(Object data, int errCode, String msg) {
                Log.d("TPush", "註冊失敗,錯誤碼:" + errCode + ",錯誤信息:" + msg);

            }
        });

    }

到此,推送的簡單集成已經完成,建立一個推送消息試試吧!code

圖片描述
關於自定義,後面有時間了再繼續添加!後面我但願把全部推送都記錄下來。(百度已經寫好Demo)
文章寫的倉儲,還望見諒。能把功能寫好就是硬道理。嘿嘿~xml

歡迎共同窗習交流!點擊下載信鴿推送Demo!
點擊下載百度推送Demo!晚安,祝程序員們之後都少加班不加班,事業有成!:)Good Night!

相關文章
相關標籤/搜索