umeng友盟消息推送功能集成

摘要:
Umeng优梦消息推送功能集成1.首先,请查看优梦消息消息推送集成的API文档。

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

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

  观看地址如下:

1 http://dev.umeng.com/push/android/integration#3_2

2.集成步骤如下

  •    下载sdk

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

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

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

             如图 

            umeng友盟消息推送功能集成第1张

  • 修改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,开始消息推送功能测试!

免责声明:文章转载自《umeng友盟消息推送功能集成》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python3 练习题100例 (二十七)列表元素改写mysql-noinstall.zip免安装版的优化配置和精简下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

时间不同步导致的nova,cinder服务一会up一会down的来回跳跃

               客户反馈无法创建虚拟机(openstack版本为Juno),登录控制节点,发现nova 和cinder服务有为down的,检查down节点的nova和cinder日志,未发现任何日志信息显示error,且日志显示nova和cinder都在正常更新状态,创建虚拟机的请求,nova-schedule未做任何调度,创建的虚拟机状态直...

wpf mvvm模式下 在ViewModel关闭view

本文只是博主用来记录笔记,误喷 使用到到了MVVM中消息通知功能 第一步:在需要关闭窗体中注册消息   1 public UserView() 2 { 3 this.DataContext = new UserViewModel(); 4 InitializeComponent();...

nodejs操作消息队列RabbitMQ

一. 什么是消息队列 消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。其主要用途:不同进程Process/线程Thread之间通信。 为什么会产生消息队列?有几个原因: 不同进程(process)之间传递消息时,两个进程之间耦合程度过高,改动一个进程,引发必须修改...

C#如何获取其他程序ListView控件中的内容

源码下载:http://download.csdn.net/detail/php_fly/4923388 需求:获取其他程序中的ListView控件的文本内容 原理:进程之间是相互隔离的,数据是不能共享的(有些特例)    LVM_GETTITEMTEXT:将一个数据缓冲区提供给listview32控件,你不能把你的进程的数据缓冲提供给另外的程序,所以要用...

C#使用SmtpClient发送邮件

原理:  例如A使用163邮箱发送邮件给B(qq邮箱)。首先A会把邮件通过SMTP(Simple Mail Transfer Protocol)协议传输到163的Smtp服务器上,163的Smtp服务器会根据B的邮箱账号,把邮件通过Smtp协议发给QQ邮箱的Smtp服务器。QQ的Smtp服务器接收到邮件消息后会将之存储在QQ邮箱的邮件存储设备上。当B登陆Q...

如何用Android Studio同时使用SVN和Git管理项目

本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 这篇来讲讲如何在 Android Studio 上同时用 SVN 和 Git 来管理项目。我知道,你肯定会说我吃饱了撑着,没事找事做,为啥要同时用 SVN 和 Git 来管理项目。问题是,我也不想啊,我也很无奈啊(:(哭丧脸)。 为啥要同时用 SVN 和 Git 管理项目 这小题目也可以叫...