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>标签下添加:

  1. <meta-data
  2. android:name="UMENG_APPKEY"
  3. android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  4. </meta-data>
  5. <meta-data
  6. android:name="UMENG_MESSAGE_SECRET"
  7. android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  8. </meta-data>

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

  • 初始化PushSDK

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

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

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

umeng友盟消息推送功能集成的更多相关文章

  1. 为友盟消息推送开发的PHP SDK(composer版):可以按省发Android push

    一直以来APP希望按省市县推送Android push,只能自己分析用户经纬度,打tag发送. 现在终于有服务商提供了. 友盟消息推送 可以“按省推送”,很方便. 我为友盟做了PHP SDK(comp ...

  2. .NET手记-友盟消息推送服务器端加密算法的实现

    最近为App开发消息推送功能,这里我们采用了友盟的消息推送服务,但其后台简陋,可定制化程度低,所以决定接入服务器端API,在自己的服务器上部署一套推送服务. 其中涉及到很多问题,首先要解决的就是与友盟 ...

  3. 友盟消息推送api、python sdk问题、测试demo代码

    一,友盟消息推送python服务端sdk地址和文档地址 1.sdk地址:http://dev.umeng.com/system/resources/W1siZiIsIjIwMTYvMDgvMTkvMT ...

  4. 【转载自友盟消息推送iOS文档】在appDelegate中注册推送

    1.2   基本功能集成指南 提示 请先在友盟的消息推送管理后台中创建App,获得AppKey和AppSecret 导入SDK 下载 UMessage_Sdk_All_x.x.x.zip并解压缩 导入 ...

  5. 友盟消息推送和更新XML配置

    <receiver android:name="com.umeng.message.NotificationProxyBroadcastReceiver" android:e ...

  6. 友盟消息推送UPush

    第一步:把下载的SDK里面的PushSDK当做Module导入自己的项目 第二步:在自己项目的build.gradle里面一定要配置applicationId defaultConfig { appl ...

  7. xamarin.android 消息推送功能--极光推送

    最近在使用xamarin.android的消息推送功能,官方使用的例子是FCM方式,按照官方文档,使用FQ软件是可以成功的,但是在国内由于众所周知的原因,在国内服务并不能使用,于是查找国内各自推送平台 ...

  8. 友盟iOS推送配置(从真机调试到推送)

    下面我来讲解一下友盟iOS的推送配置,其实友盟只是一个示例,换做其余的第三方推送服务也会适用,只是第三方的后面服务变了而已. iOS推送(包括真机调试)所需要的步骤和文件如下: 备注:这里我将省略掉一 ...

  9. 基于FCM的消息推送功能

    需求背景 我方项目需要支持客户端消息推送,iOS终端可以借由苹果本身的apns很方便的实现,但是对于Android来说,必须集成第三方的SDK来处理.考虑到项目需要以及成本,我们选择使用谷歌的FCM框 ...

随机推荐

  1. mysql递归查询从子类ID查询所有父类

    先来看数据表的结构如下: id  name    parent_id  ---------------------------  1   Home        0  2   About        ...

  2. 利用WebSocket传输数组或者Blob的方案

    最近在利用Html5的WebSocket进行即时通讯,一点小心得,大家一起讨论吧 首先把WebSocket的协议网址和WebSocket API网址给大家: 协议:http://tools.ietf. ...

  3. Eclipse启动时提示Fail to create the Java Virtual Machine的解决方法

    这个错误是Eclipse里面的一个bug,我们通过如下的设置就可以解决它. 打开eclipse安装目录下的eclipse.ini文件: 将其中的256m改为128m,512m改为256m,1024m改 ...

  4. [Web 前端] this作用域问题

    如何不用这种写法:理想的写法是this.setState({ .... }) 可能是我没有描述清楚,我不想用这种学法而已,这样多了一个变量,我觉得很不舒服.我尝试了先把 setState 赋值到变量里 ...

  5. 防止Memcached的DDOS攻击另外一个思路

    3月3日,国家互联网应急中心通报了一条消息 关于利用memcached服务器实施反射DDoS攻击的情况通报 通告了 memcached 服务器漏洞被黑客利用的情况,笔者的一台服务器也存在漏洞,因此将漏 ...

  6. 理解Java中的ThreadLocal

    提到ThreadLocal,有些Android或者Java程序员可能有所陌生,可能会提出种种问题,它是做什么的,是不是和线程有关,怎么使用呢?等等问题,本文将总结一下我对ThreadLocal的理解和 ...

  7. [转]php-mobile-detect

    转自:http://www.oschina.net/p/php-mobile-detect php-mobile-detect (Mobile_Detect) 是一个 PHP 类,用来通过 User- ...

  8. 深入JVM系列(二)之GC机制、收集器与GC调优

    一.回想JVM内存分配 须要了解很多其它内存模式与内存分配的,请看 深入JVM系列(一)之内存模型与内存分配 1.1.内存分配: 1.对象优先在EDEN分配 2.大对象直接进入老年代  3.长期存活的 ...

  9. 在linux下 用p7zip 命令行下 解压 iso文件

    todo tomorrorw! 在linux下可以通过 mount IOSFILE.iso /media/myiso/ -o loop 这种方式挂载,然后直接从 目录中拷贝 iso的内容出来就可以. ...

  10. Sharepoint2013 Report Service初探

    首先需要建立相应的report报表 如图: 这里的sql如下: SELECT PC.Name AS Category, PS.Name AS Subcategory, DATEPART(yy, SOH ...