umeng友盟消息推送功能集成

umeng友盟消息推送功能集成(本人使用的是eclipse开发)

1.首先请自行观看友盟消息推送集成的API文档。

  观看地址如下:

2.集成步骤如下

  •    下载sdk

        注意:有两种sdk如果用户已经集成支付宝的就下载no-uid版本的sdk

        下载地址:http://download.csdn.net/detail/lr393993507/9634730

  •    解压下载好的文件,并且把 PushSDK 和 eclipselibs 两文件夹下的libs包拷贝到android的lib目录下  

             如图 

            

  • 修改android下的AndroidManifest.xml文件

     增加如下内容:

  1 <?xml version="1.0" encoding="utf-8"?>
  2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3     package="com.umeng.message.lib"
  4     android:versionCode="1"
  5     android:versionName="1.0" >
  6 
  7     <!-- 必选 -->
  8     <uses-permission android:name="android.permission.WRITE_SETTINGS" />
  9     <uses-permission android:name="android.permission.INTERNET" />
 10     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 11     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
 12     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 13     <uses-permission android:name="android.permission.WAKE_LOCK" />
 14     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 15     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
 16     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
 17     <uses-permission android:name="android.permission.GET_TASKS" />
 18     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
 19 
 20     <!-- 可选 -->
 21     <uses-permission android:name="android.permission.BROADCAST_PACKAGE_ADDED" />
 22     <uses-permission android:name="android.permission.BROADCAST_PACKAGE_CHANGED" />
 23     <uses-permission android:name="android.permission.BROADCAST_PACKAGE_INSTALL" />
 24     <uses-permission android:name="android.permission.BROADCAST_PACKAGE_REPLACED" />
 25     <uses-permission android:name="android.permission.RESTART_PACKAGES" />
 26     <uses-permission android:name="android.permission.GET_ACCOUNTS" />
 27     <uses-permission android:name="android.permission.VIBRATE" />
 28     <uses-permission android:name="android.permission.SEND_SMS" />
 29     <uses-permission android:name="android.permission.RECEIVE_SMS" />
 30     <uses-permission android:name="android.permission.READ_SMS" />
 31 
 32     <application android:allowBackup="true" >
 33         <receiver
 34             android:name="com.umeng.message.NotificationProxyBroadcastReceiver"
 35             android:exported="false" >
 36         </receiver>
 37         <receiver
 38             android:name="com.umeng.message.SystemReceiver"
 39             android:process=":push" >
 40             <intent-filter>
 41                 <action android:name="android.intent.action.BOOT_COMPLETED" />
 42             </intent-filter>
 43             <intent-filter>
 44                 <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
 45             </intent-filter>
 46             <intent-filter>
 47                 <action android:name="android.intent.action.PACKAGE_REMOVED" />
 48 
 49                 <data android:scheme="package" />
 50             </intent-filter>
 51         </receiver>
 52         <receiver
 53             android:name="com.umeng.message.MessageReceiver"
 54             android:exported="false"
 55             android:process=":push" >
 56             <intent-filter>
 57                 <action android:name="org.agoo.android.intent.action.RECEIVE" />
 58             </intent-filter>
 59         </receiver>
 60         <receiver
 61             android:name="com.umeng.message.ElectionReceiver"
 62             android:process=":push" >
 63             <intent-filter>
 64                 <action android:name="org.agoo.android.intent.action.ELECTION_RESULT_V4" />
 65 
 66                 <category android:name="umeng" />
 67             </intent-filter>
 68         </receiver>
 69         <receiver
 70             android:name="com.umeng.message.RegistrationReceiver"
 71             android:exported="false" >
 72             <intent-filter>
 73                 <action android:name="${applicationId}.intent.action.COMMAND" />
 74             </intent-filter>
 75         </receiver>
 76         <receiver android:name="com.umeng.message.UmengMessageBootReceiver" >
 77             <intent-filter>
 78                 <action android:name="android.intent.action.BOOT_COMPLETED" />
 79             </intent-filter>
 80         </receiver>
 81 
 82         <service
 83             android:name="com.umeng.message.UmengService"
 84             android:exported="true"
 85             android:label="PushService"
 86             android:process=":push" >
 87             <intent-filter>
 88                 <action android:name="${applicationId}.intent.action.START" />
 89             </intent-filter>
 90             <intent-filter>
 91                 <action android:name="${applicationId}.intent.action.COCKROACH" />
 92             </intent-filter>
 93             <intent-filter>
 94                 <action android:name="org.agoo.android.intent.action.PING_V4" />
 95 
 96                 <category android:name="umeng" />
 97             </intent-filter>
 98         </service>
 99         <service
100             android:name="com.umeng.message.UmengIntentService"
101             android:process=":push" />
102         <service
103             android:name="com.umeng.message.UmengMessageIntentReceiverService"
104             android:exported="true"
105             android:process=":push" >
106             <intent-filter>
107                 <action android:name="org.android.agoo.client.MessageReceiverService" />
108             </intent-filter>
109             <intent-filter>
110                 <action android:name="org.android.agoo.client.ElectionReceiverService" />
111             </intent-filter>
112         </service>
113         <service
114             android:name="com.umeng.message.UmengMessageCallbackHandlerService"
115             android:exported="false" >
116             <intent-filter>
117                 <action android:name="com.umeng.messge.registercallback.action" />
118             </intent-filter>
119             <intent-filter>
120                 <action android:name="com.umeng.message.unregistercallback.action" />
121             </intent-filter>
122             <intent-filter>
123                 <action android:name="com.umeng.message.message.handler.action" />
124             </intent-filter>
125             <intent-filter>
126                 <action android:name="com.umeng.message.autoupdate.handler.action" />
127             </intent-filter>
128         </service>
129         <!-- If you donot want to use the standard notification bar in SDK, you can define IntentService instead to handle message. -->
130 
131         <service
132             android:name="com.umeng.message.UmengDownloadResourceService"
133             android:exported="false" />
134         <service
135             android:name="com.umeng.message.local.UmengLocalNotificationService"
136             android:exported="false" />
137     </application>
138 
139 </manifest>

注意:

  1. 把PushSDK目录下的AndroidManifest.xml中的${applicationId}替换成为自己项目的包名。
  2. 右键单击PushSDK的libs目录下的jar文件,选择add to build path(若使用最新版本的ADT工具,则会自动将libs目录下的jar包添加到build path,无需执行此步骤)。
  3. 在自己工程目录下找到project.properties,在里面加入manifestmerger.enabled=true,同时使主工程的minSdkVersion、targetSdkVersion与PushSDK的minSdkVersion、targetSdkVersion保持一致。
  • 配置Appkey和Secret

在工程的Application Module里的AndroidManifest.xml中的<Application>标签下添加:

<meta-data
    android:name="UMENG_APPKEY"
    android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
</meta-data>
<meta-data
    android:name="UMENG_MESSAGE_SECRET"
    android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
</meta-data>

把上述的UMENG_APPKEYUMENG_MESSAGE_SECRET的值修改为和自己应用对应的值。

  • 初始化PushSDK

务必在工程的Application类的 onCreate() 方法中开启推送服务,无论推送是否开启都需要调用此方法:

mPushAgent = PushAgent.getInstance(this);  
mPushAgent.onAppStart();
mPushAgent.enable();  
String device_token = UmengRegistrar.getRegistrationId(this);//获取手机device token 唯一的 

 

然后打包生成app,开始消息推送功能测试!

posted @ 2016-09-20 14:02  魔流剑  阅读(9638)  评论(0编辑  收藏  举报