1. 导入SDK所需jar包

下载最新版SDK的zip包,将其中的libs 文件夹合并到本地工程libs子目录下,再在Eclipse里面刷新一下工程。

注意

  • Eclipse ADT 17 以下版本用户,可以使用老方式添加工程引用。 Eclipse用户鼠标右键工程根目录,选择Properties -> Java Build Path -> Libraries,然后点击Add External JARs... 选择指向jar的路径,点击OK,即导入成功。 如果引用过程中出现问题, 可以参考Dealing with dependencies in Android projects.

  • Android Studio 以及Gradle 用户请参考如何引用第三方类库说明, 暂不提供 maven 支持。

  • 本SDK需要最新版本的 android-support-v4.jar 支持包。请在工程中添加 android-support-v4.jar 支持包。 关于v4 支持包说明, 请参考 http://developer.android.com/tools/support-library/features.html#v4 .

2. 使用SDK包中的Demo进行调试(可选)

  1. 导入SDK包中Demo的代码到Eclipse。
  2. 用添加应用时获得的AppKey和Umeng Message Secret替换掉Demo中默认的AppKey和Umeng Message Secret。
  3. 用添加应用时填写的包名(多包名时根据需要填写其中一个)替换Demo的包名(com.umeng.message.example)。包括:
    • AndroidManifest.xml文件中的"package"字段。
    • AndroidManifest.xml文件中的标签下与消息推送相关的组件包名。
    • Eclipse里的包名。
  4. 重新打包Demo。将Demo的apk包安装到测试设备上并打开。
  5. 参照步骤4.3的说明,给该设备发送测试消息。

3. 配置AndroidManifest.xml

3.1 添加权限

标签下:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

说明

  • 下面两个权限为消息推送SDK V1.2.3版本中添加的权限,新版中已经不需要这两个权限。
    <uses-permission android:name="android.permission.GET_TASKS" />  
    <uses-permission android:name="android.permission.REORDER_TASKS" />

3.2 添加组件

标签下:

注意

添加组件时需要将【应用包名】替换为你自己应用的包名。

<receiver
    android:name="com.umeng.message.NotificationProxyBroadcastReceiver"
    android:exported="false" >
receiver>
<receiver android:name="com.umeng.message.RegistrationReceiver" >
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.PACKAGE_REMOVED" />

        <data android:scheme="package" />
    intent-filter>

     
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    intent-filter>

receiver>
<receiver android:name="com.umeng.message.UmengBroadcastReceiver" >
    <intent-filter>
        <action android:name="org.agoo.android.intent.action.RECEIVE" />
    intent-filter>
    <intent-filter>
        <action android:name="【应用包名】.intent.action.COMMAND" />
    intent-filter>
    <intent-filter>
        <action android:name="org.agoo.android.intent.action.RE_ELECTION_V2" />
    intent-filter>
receiver>
<service
    android:name="com.umeng.message.UmengService"
    android:exported="true"
    android:process=":umengService_v1" >
    <intent-filter>
        <action android:name="【应用包名】.intent.action.START" />
    intent-filter>
    <intent-filter>
        <action android:name="【应用包名】.intent.action.COCKROACH" />
    intent-filter>
    <intent-filter>
        <action android:name="org.agoo.android.intent.action.PING" />
    intent-filter>
service>
<service
    android:name="org.android.agoo.service.ElectionService"
    android:exported="true"
    android:process=":umengService_v1" >
    <intent-filter>
        <action android:name="org.agoo.android.intent.action.ELECTION_V2" />
    intent-filter>
service>
<service android:name="com.umeng.message.UmengIntentService" />

<service android:name="com.umeng.message.UmengDownloadResourceService" />

3.3 添加 AppKey 和 Umeng Message Secret

标签下:

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

说明

请在 http://message.umeng.com 创建应用,获取应用对应的AppKey和Umeng Message Secret。

3.4 添加Channel ID

你可以用Channel ID来标识APP的推广渠道,作为推送消息时给用户分组的一个维度。设置方法如下:

标签下:

<meta-data
    android:name="UMENG_CHANNEL"
    android:value="Channel ID" >
meta-data>

将"android:value"中的"Channel ID"替换为APP的推广渠道。

或者,通过调用以下代码来设置推广渠道。

mPushAgent.setMessageChannel();

说明

  • 若同时在AndroidManifest.xml和代码设置了MessageChannel,则以代码设置的为准。
  • 若在AndroidManifest.xml和代码里均没有设置,则使用Unknown作为Channel ID。
  • 你可以使用20位以内的英文和数字为渠道定名(不要使用纯数字)。
  • 友盟消息推送可以和友盟统计分析共用一个"Channel ID"字段。
  • 你可以使用友盟渠道打包工具,一次生成多个渠道包。

4. 添加代码,编译测试

4.1 添加代码

4.1.1 开启推送服务

在应用的主Activity onCreate() 函数中开启推送服务

PushAgent mPushAgent = PushAgent.getInstance(context);
mPushAgent.enable();
  • 可以通过接口 mPushAgent.disable(); 来关闭客户端的通知服务。
  • 通过mPushAgent.isEnabled() 来查询状态。 状态表示有没有启用/关闭推送功能, 不表示推送后台服务的运行状态。

注意

如果你的应用继承了Application, 不要在Application onCreate() 中调用 mPushAgent.enable();. 由于SDK 设计的逻辑, 这会造成循环。

4.1.2 统计应用启动数据

在所有的Activity 的onCreate 函数添加

PushAgent.getInstance(context).onAppStart();

注意: 如果不调用此方法,将会导致按照"几天不活跃"条件来推送失效。

4.1.3 获取设备的Device Token(可选)

如果在测试或其他使用场景中,需要获取设备的Device Token,可以使用下面的方法。

String device_token = UmengRegistrar.getRegistrationId(context)

说明

  • Device Token为友盟生成的用于标识设备的id,长度为44位,不能定制和修改。同一台设备上每个应用对应的Device Token不一样。
  • 获取Device Token的代码需要放在mPushAgent.enable();后面,注册成功以后调用才能获得Device Token。
  • 如果返回值为空, 说明设备还没有注册成功, 需要等待几秒钟,同时请确保测试手机网络畅通。

4.2 编译

添加代码完毕后,编译apk包。然后将apk包安装到联网的测试设备上并打开。

说明

如果在编译和调试过程中遇到问题(例如混淆或无法编译),请参考步骤7中常见问题的处理方法。

4.3 在测试模式中发送测试消息

4.3.1 获取测试设备的Device Token。

可以在Debug模式下输出的logcat中看到Device Token,也可以使用下面的方法来获取Device Token。

String device_token = UmengRegistrar.getRegistrationId(context)

说明

  • Device Token为友盟生成的用于标识设备的id,长度为44位,不能定制和修改。同一台设备上每个应用对应的Device Token不一样。
  • 获取Device Token的代码需要放在mPushAgent.enable();后面,注册成功以后调用才能获得Device Token。
  • 如果返回值为空, 说明设备还没有注册成功, 需要等待几秒钟,同时请确保测试手机网络畅通。

4.3.2 添加测试设备

在友盟消息推送服务后台( http://message.umeng.com )的“测试模式”中填写该设备的Device Token,将该设备添加为测试设备,

4.3.3 发送测试消息

在“测试模式”中发送测试消息。在测试设备上收到消息,表明SDK集成成功。

说明

SDK 默认使用通知栏展示通知消息,开发者可以在友盟后台指定用户点击通知栏时的操作,包括“打开应用”、“打开指定页面(Activity)”、或“打开指定网页”。 如果没有收到消息,请参考FAQ中的处理方法。

4.4 API对接(可选)

如果要使用API对接友盟服务器来发送消息,需要在友盟消息推送服务后台( http://message.umeng.com )填写服务器地址,进行白名单登记。 参考API文档中的格式发送测试消息。需要填写正确的App Master Secret。

5. 自定义消息的打开动作和处理方式

5.1 消息的分类

在友盟后台,消息分为两类:

1. 通知消息

该消息包含Notification所需的参数,如Notification的标题、内容、是否振动、点击后的相应动作等信息。如下图所示:

稳定

产品高可用性高并发

贴心

项目群及时沟通

专业

产品经理1v1支持

快速

MVP模式小步快跑

承诺

我们选择声誉

坚持

10年专注高端品质开发
  • 返回顶部