友盟推送 android
坑:
1.搞了一个上午,自动导入一直有一个push sdk包一直下不下来,然后自己手动下载,放到对应文件了
但是,由于下载的push sdk 包为aar文件,很尴尬,一直not found,(网上有人说把后缀aar改为zip然后解压缩,本人没试过)
2.手动导入,下了很多东西,但是由于module 似乎不太会,东搞西搞反正就是没搞成功,
3.晚上吃完饭抱着试一试的心态又试了自动导入,居然成功了,surprice
总结:依赖包导不进去,可能就是网络的原因,不然为什么中午不行,晚上就可以了,,弄不好,玩玩游戏说不定就好咯,哈哈
正题
1.gradle.module 加入
1 //PushSDK必须依赖基础组件库,所以需要加入对应依赖 2 implementation 'com.umeng.sdk:common:1.5.3' 3 //PushSDK必须依赖utdid库,所以需要加入对应依赖 4 implementation 'com.umeng.sdk:utdid:1.1.5.3' 5 //PushSDK 6 implementation 'com.umeng.sdk:push:4.2.0'
2.gradle.project 加入
1 allprojects {
2 repositories {
3 mavenCentral()
4 }
5 }
3.找到你在友盟注册的设备,务必包名相同
然后找到
1 AppKey 2 5b7a534f8f4a9d1cdc00004c
3 Umeng Message Secret 4 ed05e060cd937c7561a5591598b2fefb
5 App Master Secret 6 5vdololnscoxmfyr4ss8ar4yqjzy70zo
AppKey 和 Umeng Message Secret 码
4.在AndroidManifest中注册权限 及 添加meta-data
权限
1 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 2 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 3 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 4 <uses-permission android:name="android.permission.INTERNET" /> 5 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 6 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 7 <uses-permission android:name="android.permission.GET_TASKS" />
meta-data
1 <!--友盟推送--> 2 <meta-data 3 android:name="UMENG_APPKEY" 4 android:value="你自己的APPKEY" /> 5 <!-- Channel ID用来标识App的推广渠道,作为推送消息时给用户分组的一个维度。--> 6 <meta-data 7 android:name="UMENG_MESSAGE_SECRET" 8 android:value="你自己的SECRET" />
5.写一个继承Application的类,并在此类中的 onCreate 方法中完成初始化操作
只能一个类继承Application,不然无法初始化 运行后在error级别看device_token
1 package comt.example.dell_pc.test.Umeng; 2 3 import android.app.Application; 4 import android.util.Log; 5 import com.umeng.commonsdk.UMConfigure; 6 import com.umeng.message.IUmengRegisterCallback; 7 import com.umeng.message.PushAgent; 8 import comt.example.dell_pc.test.Utils.PreferenceUtil; 9 import static anet.channel.util.Utils.context; 10 11 public class UmengApplication extends Application { 12 private static final String TAG="UmengApplication"; 13 @Override 14 public void onCreate() { 15 super.onCreate();
//这个不是友盟的,只是初始化PreferenceUtil的,一个存储的工具 16 PreferenceUtil.init(this); //存数据的 初始化 17 18 //**********************Umeng*************************** 19 UMConfigure.init(this,UMConfigure.DEVICE_TYPE_PHONE, "ed05e060cd937c7561a5591598b2fefb"); 20 PushAgent mPushAgent = PushAgent.getInstance(this); 21 mPushAgent.setResourcePackageName("comt.example.dell_pc.test"); 22 PushAgent.getInstance(context).onAppStart(); 23 mPushAgent.register(new IUmengRegisterCallback() { 24 @Override 25 public void onSuccess(String s) { //运行后在error级别看device_token 26 Log.e("获取token成功:",s); 27 } 28 @Override 29 public void onFailure(String s, String s1) { 30 Log.e("获取token失败:",s+"且s1="+s1); 31 } 32 }); 33 } 34 }
6.运行程序 获得 device token
获取后在------测试模式----添加-----测试设备
7.添加测试消息
有三种类别:
友盟里面自带的推送消息,
自定义消息,
应用内部消息。
如果测试话将获取的token值选择独立用户

浙公网安备 33010602011771号