友盟推送 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 加入

 allprojects {

repositories {

mavenCentral()

}

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值选择独立用户

 

posted @ 2018-08-21 00:10  小#安  阅读(392)  评论(0)    收藏  举报