最近在作推送,剛開始接到推送的時候,首先想到了極光推送,後來讓用百度推送。程序員都知道,需求不斷改,最後變成了信鴿推送。話說對信鴿推送真的是沒用過。不過集成第三方的方式都大差不差。還好不負所望,集成了信鴿推送。因爲最近很忙,每天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!