关闭

android studio集成友盟v2.3消息推送

标签: 友盟消息推送studio友盟消息推送
852人阅读 评论(3) 收藏 举报
分类:

1,下载友盟的sdk,将压缩包下的libs下的内容复制到工程的libs下下载地址

2,本SDK需要最新版本的 android-support-v4.jar 支持包。eclipse用户,直接导入jar包。sudio用户在build.gardle里加入v4支持,如下代码

dependencies {

    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:22.1.1'
    compile files('libs/android-support-v4.jar')
}

3, 配置AndroidManifest.xml

3.1  添加权限
在<manifest>标签下:

<!-- 权限声明开始-->
<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" />

<!--【可选】如果需要设置前台是否显示通知,需要设置这个权限-->
<uses-permission android:name="android.permission.GET_TASKS" />

<!-- 可选 -->
<uses-permission android:name="android.permission.BROADCAST_PACKAGE_ADDED" />
<uses-permission android:name="android.permission.BROADCAST_PACKAGE_CHANGED" />
<uses-permission android:name="android.permission.BROADCAST_PACKAGE_INSTALL" />
<uses-permission android:name="android.permission.BROADCAST_PACKAGE_REPLACED" />
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />;
<!-- 权限声明结束-->
3.2  添加组件
在<application>标签下:
    注意     添加组件时需要将【应用包名】替换为你自己应用的包名。

<!--友盟消息推送server声明开始-->
<receiver
    android:name="com.umeng.message.NotificationProxyBroadcastReceiver"
    android:process=":push"
    android:exported="false" >
</receiver>
<receiver
    android:name="com.umeng.message.SystemReceiver"
    android:process=":push" >
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
    <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.MessageReceiver"
    android:process=":push" >
    <intent-filter>
        <action android:name="org.agoo.android.intent.action.RECEIVE" />
    </intent-filter>
</receiver>
<receiver
    android:name="com.umeng.message.ElectionReceiver"
    android:process=":push" >
    <intent-filter>
        <action android:name="org.agoo.android.intent.action.ELECTION_RESULT_V4" />
        <category android:name="umeng" />
    </intent-filter>
</receiver>
<receiver
    android:name="com.umeng.message.RegistrationReceiver"
    android:exported="false" >
    <intent-filter>
        <action android:name="【应用包名】.intent.action.COMMAND" />
    </intent-filter>
</receiver>
<receiver android:name="com.umeng.message.UmengMessageBootReceiver" >
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>


可以根据需要自行设置 android:label 中的服务名 :

<service
    android:name="com.umeng.message.UmengService"
    android:label="PushService"
    android:exported="true"
    android:process=":push" >
    <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_V4" />
    <category android:name="umeng" />
    </intent-filter>
</service>
<service android:name="com.umeng.message.UmengIntentService"
    android:process=":push" />
<service
    android:name="com.umeng.message.UmengMessageIntentReceiverService"
    android:process=":push"
    android:exported="true" >
    <intent-filter>
        <action android:name="org.android.agoo.client.MessageReceiverService" />
    </intent-filter>
    <intent-filter>
        <action android:name="org.android.agoo.client.ElectionReceiverService" />
    </intent-filter>
</service>
<!-- V1.3.0添加的service,负责下载通知的资源 -->
<service android:name="com.umeng.message.UmengDownloadResourceService" />
<!--友盟消息推送server声明结束-->
3.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。

3.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"字段。

4,获取手机在友盟注册的唯一设备号,给后台开发人员。在activity的onCreate()中

        /**设备号**/
        PushAgent mPushAgent = PushAgent.getInstance(this);
        mPushAgent.enable();
        String device_token = UmengRegistrar.getRegistrationId(this);
        System.out.println("设备号="+device_token);
        /**设备号**/

更多内容见官方文档

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:57080次
    • 积分:1586
    • 等级:
    • 排名:千里之外
    • 原创:104篇
    • 转载:6篇
    • 译文:0篇
    • 评论:17条
    文章分类
    最新评论