zoukankan      html  css  js  c++  java
  • 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,开始消息推送功能测试!

  • 相关阅读:
    毕业设计记录——3.5
    毕业设计记录——3.4
    毕业设计记录——3.3
    阿里云申请SSL 配置https
    毕业设计记录——3.2
    毕业设计(2.25-3.1)周工作计划
    远程连接阿里云ecs 服务器Ubuntu 16.04报错 解决
    基于springboot的ajax异步文件上传
    《需求工程-软件建模与分析之读书笔记之四》
    《需求工程-软件建模与分析之读书笔记之三》
  • 原文地址:https://www.cnblogs.com/lr393993507/p/5888596.html
Copyright © 2011-2022 走看看