友盟消息推送

消息推送SDK快速集成:

申請(qǐng)AppKey? ——>? 接入Push SDK? ——>? 基礎(chǔ)接口引入? ——>? 消息推送測(cè)試??——>? 接入完成


1.申請(qǐng)AppKey


2.接入Push SDK

1).加入依賴

//友盟push相關(guān)依賴(必須)

implementation'com.umeng.umsdk:push:6.1.0'

implementation'com.umeng.umsdk:alicloud-httpdns:1.2.5'

implementation'com.umeng.umsdk:alicloud-utils:1.1.5'

implementation'com.umeng.umsdk:alicloud_beacon:1.0.1'

implementation'com.umeng.umsdk:agoo-accs:3.3.8.8-open-fix2'

implementation'com.umeng.umsdk:agoo_networksdk:3.5.5'

implementation'com.umeng.umsdk:agoo_tlog:3.0.0.17'

implementation'com.umeng.umsdk:agoo_tnet4android:3.1.14.9'

implementation'com.umeng.umsdk:asms:1.1.3'

implementation'com.umeng.umsdk:crash:0.0.4'

2).在工程build.gradle配置腳本中buildscript和allprojects段中添加【友盟+】sdk 新maven倉(cāng)庫(kù)地址

buildscript {

? ? repositories {

? ? ? ? google()

? ? ? ? jcenter()

? ? ? ? maven { url 'https://dl.bintray.com/umsdk/release' }

? ? }

? ? dependencies {

? ? ? ? classpath 'com.android.tools.build:gradle:3.1.4'

? ? ? ? // NOTE: Do not place your application dependencies here; they belong

? ? ? ? // in the individual module build.gradle files

? ? }

}

allprojects {

? ? repositories {

? ? ? ? google()

? ? ? ? jcenter()

? ? ? ? mavenCentral()

? ? ? ? maven { url 'https://dl.bintray.com/umsdk/release' }

? ? }

}

3).在AndroidManifest.xml文件中引入相關(guān)基礎(chǔ)組件:

<!-- 以下為基本配置信息,需要自行添加至您的AndroidManifest文件中 start-->

? ? ? ? <service

? ? ? ? ? ? android:name="com.taobao.accs.ChannelService"

? ? ? ? ? ? android:exported="true"

? ? ? ? ? ? android:process=":channel">

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="com.taobao.accs.intent.action.SERVICE" />

? ? ? ? ? ? </intent-filter>

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="com.taobao.accs.intent.action.ELECTION" />

? ? ? ? ? ? </intent-filter>

? ? ? ? </service>

? ? ? ? <service

? ? ? ? ? ? android:name="com.taobao.accs.data.MsgDistributeService"

? ? ? ? ? ? android:exported="true">

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="com.taobao.accs.intent.action.RECEIVE" />

? ? ? ? ? ? </intent-filter>

? ? ? ? </service>

? ? ? ? <receiver

? ? ? ? ? ? android:name="com.taobao.accs.EventReceiver"

? ? ? ? ? ? android:process=":channel">

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="android.intent.action.BOOT_COMPLETED" />

? ? ? ? ? ? </intent-filter>

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

? ? ? ? ? ? </intent-filter>

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="android.intent.action.PACKAGE_REMOVED" />

? ? ? ? ? ? ? ? <data android:scheme="package" />

? ? ? ? ? ? </intent-filter>

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="android.intent.action.USER_PRESENT" />

? ? ? ? ? ? </intent-filter>

? ? ? ? </receiver>

? ? ? ? <receiver

? ? ? ? ? ? android:name="com.taobao.accs.ServiceReceiver"

? ? ? ? ? ? android:process=":channel">

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="com.taobao.accs.intent.action.COMMAND" />

? ? ? ? ? ? </intent-filter>

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="com.taobao.accs.intent.action.START_FROM_AGOO" />

? ? ? ? ? ? </intent-filter>

? ? ? ? </receiver>

? ? ? ? <service

? ? ? ? ? ? android:name="com.taobao.accs.internal.AccsJobService"

? ? ? ? ? ? android:permission="android.permission.BIND_JOB_SERVICE"

? ? ? ? ? ? android:process=":channel"/>

? ? ? ? <service

? ? ? ? ? ? android:name="com.taobao.accs.ChannelService$KernelService"

? ? ? ? ? ? android:process=":channel" />

? ? ? ? <service

? ? ? ? ? ? android:name="org.android.agoo.accs.AgooService"

? ? ? ? ? ? android:exported="true">

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="com.taobao.accs.intent.action.RECEIVE" />

? ? ? ? ? ? </intent-filter>

? ? ? ? </service>

? ? ? ? <service

? ? ? ? ? ? android:name="com.umeng.message.UmengIntentService"

? ? ? ? ? ? android:exported="true"

? ? ? ? ? ? android:process=":channel">

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="org.agoo.android.intent.action.RECEIVE" />

? ? ? ? ? ? </intent-filter>

? ? ? ? </service>

? ? ? ? <service

? ? ? ? ? ? android:name="com.umeng.message.XiaomiIntentService"

? ? ? ? ? ? android:exported="true"

? ? ? ? ? ? android:process=":channel">

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="org.agoo.android.intent.action.RECEIVE" />

? ? ? ? ? ? </intent-filter>

? ? ? ? </service>

? ? ? ? <receiver

? ? ? ? ? ? android:name="com.taobao.agoo.AgooCommondReceiver"

? ? ? ? ? ? android:exported="true"

? ? ? ? ? ? android:process=":channel">

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="${applicationId}.intent.action.COMMAND" />

? ? ? ? ? ? </intent-filter>

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="android.intent.action.PACKAGE_REMOVED" />

? ? ? ? ? ? ? ? <data android:scheme="package" />

? ? ? ? ? ? </intent-filter>

? ? ? ? </receiver>

? ? ? ? <service

? ? ? ? ? ? android:name="com.umeng.message.UmengMessageIntentReceiverService"

? ? ? ? ? ? android:exported="true"

? ? ? ? ? ? android:process=":channel">

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="org.android.agoo.client.MessageReceiverService" />

? ? ? ? ? ? </intent-filter>

? ? ? ? </service>

? ? ? ? <receiver

? ? ? ? ? ? android:name="com.umeng.message.NotificationProxyBroadcastReceiver"

? ? ? ? ? ? android:exported="false" />

? ? ? ? <service

? ? ? ? ? ? android:name="com.umeng.message.UmengMessageCallbackHandlerService"

? ? ? ? ? ? android:permission="android.permission.BIND_JOB_SERVICE"

? ? ? ? ? ? android:exported="false">

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="com.umeng.messge.registercallback.action" />

? ? ? ? ? ? </intent-filter>

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="com.umeng.message.enablecallback.action" />

? ? ? ? ? ? </intent-filter>

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="com.umeng.message.disablecallback.action" />

? ? ? ? ? ? </intent-filter>

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="com.umeng.message.message.handler.action" />

? ? ? ? ? ? </intent-filter>

? ? ? ? ? ? <intent-filter>

? ? ? ? ? ? ? ? <action android:name="com.umeng.message.message.sendmessage.action" />

? ? ? ? ? ? </intent-filter>

? ? ? ? </service>

? ? ? ? <service

? ? ? ? ? ? android:name="com.umeng.message.UmengDownloadResourceService"

? ? ? ? ? ? android:permission="android.permission.BIND_JOB_SERVICE"

? ? ? ? ? ? android:exported="false" />

? ? ? ? <provider

? ? ? ? ? ? android:name="com.umeng.message.provider.MessageProvider"

? ? ? ? ? ? android:authorities="${applicationId}.umeng.message"

? ? ? ? ? ? android:exported="false">

? ? ? ? ? ? <grant-uri-permission android:pathPattern=".*" />

? ? ? ? </provider>

? ? ? ? <!-- 以下為基本配置信息,需要自行添加至您的AndroidManifest文件中 end-->

4、引入so文件? (全平臺(tái)so文件下載地址)? ? ?

? ? ? 注意:這邊下載的so文件可能會(huì)少,最好分方法就是直接吧友盟demo中l(wèi)ibs的文件全粘進(jìn)去(開(kāi)發(fā)者Demo

5.引入默認(rèn)通知欄通知樣式布局文件(開(kāi)發(fā)者Demo

? ?upush_bar_image_notification.xml

? ?upush_notification.xml


3.基礎(chǔ)接口引入

1).在工程的MyApplication類的?onCreate()?方法中做SDK代碼初始化工作。

UMConfigure.init(this, "替換為Appkey,服務(wù)后臺(tái)位置:應(yīng)用管理 -> 應(yīng)用信息 -> Appkey", "Umeng", UMConfigure.DEVICE_TYPE_PHONE, "替換為秘鑰信息,服務(wù)后臺(tái)位置:應(yīng)用管理 -> 應(yīng)用信息 -> Umeng Message Secret");

//獲取消息推送代理示例

PushAgent mPushAgent = PushAgent.getInstance(this);

//注冊(cè)推送服務(wù),每次調(diào)用register方法都會(huì)回調(diào)該接口

mPushAgent.register(new IUmengRegisterCallback() {

? @Override

? public void onSuccess(String deviceToken) {

? ? //注冊(cè)成功會(huì)返回deviceToken deviceToken是推送消息的唯一標(biāo)志

? ? Log.i(TAG,"注冊(cè)成功:deviceToken:-------->? " + deviceToken);

? }

? @Override

? public void onFailure(String s, String s1) {

? ? Log.e(TAG,"注冊(cè)失?。?------->? " + "s:" + s + ",s1:" + s1);

? }

});

deviceToken是【友盟+】消息推送生成的用于標(biāo)識(shí)設(shè)備的id,長(zhǎng)度為44位,不能定制和修改。同一臺(tái)設(shè)備上不同應(yīng)用對(duì)應(yīng)的deviceToken不一樣。獲取deviceToken的值后,可進(jìn)行消息推送測(cè)試!

2).應(yīng)用數(shù)據(jù)統(tǒng)計(jì)接口

在所有的Activity 的onCreate 方法或在應(yīng)用的BaseActivity的onCreate方法中添加:

PushAgent.getInstance(context).onAppStart();

注:該方法是【友盟+】Push后臺(tái)進(jìn)行日活統(tǒng)計(jì)及多維度推送的必調(diào)用方法,請(qǐng)務(wù)必調(diào)用!


4.消息推送測(cè)試

順利獲取deviceToken!我們馬上可以向這臺(tái)設(shè)備推送消息了~

添加測(cè)試設(shè)備:

在【友盟+】消息推送服務(wù)Push后臺(tái)的“測(cè)試模式”中填寫獲取到的deviceToken,將該設(shè)備添加為測(cè)試設(shè)備:

在測(cè)試消息中新建消息,詳細(xì)過(guò)程如下所示,詳細(xì)過(guò)程如下所示:


5.接入完成

此時(shí)在您的測(cè)試手機(jī)上可以看到您剛才的推送消息!

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

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