友盟消息推送(1)

IT行业交流群  群号:214682849
欢迎跟计算机相关专业的朋友加入,目前群正处于建设阶段,活跃人士可申请管理。
                                                                  群主:秋叶残魂



友盟消息推送组件帮助您实时的推送消息给用户。

注意

消息推送SDK 支持Android 2.2 (API 8)及以上系统。建议在编译和混淆时引用最新版本Android SDK (17+),因为Message SDK 条件使用了一些android-8 以上的API。对于Android 2.2 以下的系统, 消息推送组件不工作,但不影响应用本身功能的正常使用。

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


1. 导入SDK所需jar包

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

  • Eclipse ADT 17 以下版本用户,可以使用老方式添加工程引用。 Eclipse用户鼠标右键工程根目录,选择Properties -> Java Build Path -> Libraries,然后点击Add External JARs... 选择指向jar的路径,点击OK,即导入成功。 

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

  • 本SDK需要最新版本的 android-support-v4.jar 支持包。请在工程中添加 android-support-v4.jar 支持包。


    2. 配置AndroidManifest.xml

    2.1 添加权限

    <manifest>标签下:

    <uses-permission android:name="android.permission.READ_LOGS" />
    <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" />
    
    

    说明

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

    2.2 添加组件

    <application>标签下:

    注意

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

    <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>
    </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" />
    <!-- V1.3.0添加的service,负责下载通知的资源 -->
    <service android:name="com.umeng.message.UmengDownloadResourceService" />
    

    2.3 添加 AppKey 和 Umeng Message Secret

    <application>标签下:

    <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。

    2.4 添加Channel ID

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

    <application>标签下:

    <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"字段。
    • 你可以使用友盟渠道打包工具,一次生成多个渠道包。

    3. 添加代码,编译测试

    3.1 添加代码

    3.1.1 开启推送服务

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

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

    注意

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


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

    3.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。
    • 如果返回值为空, 说明设备还没有注册成功, 需要等待几秒钟,同时请确保测试手机网络畅通。
    3.3.2 添加测试设备

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

    3.3.3 发送测试消息

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

    说明

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





    *Device Token为(3.3.1 获取测试设备的Device Token);




    参考资料友盟SDK与文档:http://dev.umeng.com/message/android/integration-guide



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值