Android集成阿里消息推送

1.阿里消息推送的官方文档地址

https://help.aliyun.com/document_detail/30054.html?spm=a2c4g.11174283.3.2.136c6d1669NIv4

 

集成的步骤:

第一步:创建app(创建app这个步骤的内容是官方文档里的)

移动服务当前创建应用,需要两步

  • (1)添加Android应用
  • (2)在产品处,点击管理后,右上角点击“创建应用”完成应用创建

1、点击页面中的“添加产品”按钮,即可创建一个新的产品

1

2、输入产品的基本信息创建App时需要输入产品的名称,上传产品图标,选择产品分类。

2

3、产品创建成功

App创建成功后,产品列表会多出一个产品,强烈建议您去配置app

4

4、创建产品对应的应用

在产品列表页面,点击已经创建的产品按钮,进入产品管理页面。

5、在产品管理页面,点击添加应用图标,创建应用(目前需要分端创建)。

5

  • (1)创建Android应用,并填写APP名称和PackageName

6

创建完成后,应用会出现在应用列表中:

7

 

4

 第二步:下载SDK

Android-SDK-Download

   第三步:集成SDK

     1.添加jar包到libs文件夹下

       2.在APP工程的build.gradle中配置jniLibs的目录

    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
}  

        3.添加gradle依赖

implementation('com.aliyun.ams:alicloud-android-push:3.1.4', {
    //和支付支付有utdid包的冲突
    exclude module: 'alicloud-android-utdid'
}) 

      4.在AndroidManifest.xml里配置appkey和appsecret

<!-- 阿里推送 -->
<meta-data
    android:name="com.alibaba.app.appkey"
    android:value="2********00" />
<meta-data
    android:name="com.alibaba.app.appsecret"
    android:value="3b6**************fdb" />

     5.在AndroidManifest.xml里添加权限(这个不是阿里官方文档权限,是我自己项目里的,可以自己去官方文档复印哦)

<!-- 允许程序打开定位权限 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!-- 允许程序打开网络套接字 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 允许程序设置内置sd卡的写权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 允许程序获取网络状态 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 允许程序访问WiFi网络信息 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 允许程序读写手机状态和身份 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 允许程序访问CellID或WiFi热点来获取粗略的位置 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<!-- application中弹框 -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

<!-- 分享权限 -->
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<!-- 蓝牙分享所需的权限 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

<!-- 照片权限 -->
<uses-permission android:name="android.permission.CAMERA" />

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

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

     6.在项目的主build.gradle不是app下的build.gradle的allprojects 下添加

allprojects {
    repositories {
        google()
        jcenter()

        //集成阿里推送添加的
        maven {
            url 'http://maven.aliyun.com/nexus/content/repositories/releases/'
        }
        //集成支付宝添加的
        flatDir {
            dirs 'libs'
        }
        maven { url 'https://dl.bintray.com/umsdk/release' } //友盟统计
        maven { url 'https://jitpack.io' }
    }
}

 

    7.接收消息的Receiver配置

<receiver
    android:name=".receiver.AliMessageReceiver"
    android:exported="false"> <!-- 为保证receiver安全,建议设置不可导出,如需对其他应用开放可通过android:permission进行限制 -->
    <intent-filter>
        <action android:name="com.alibaba.push2.action.NOTIFICATION_OPENED" />
    </intent-filter>
    <intent-filter>
        <action android:name="com.alibaba.push2.action.NOTIFICATION_REMOVED" />
    </intent-filter>
    <intent-filter>
        <action android:name="com.alibaba.sdk.android.push.RECEIVE" />
    </intent-filter>
</receiver>

     8.混淆文件proguard-rules.pro的配置

#阿里移动推送
-keep class android.support.multidex.**{*;}
-keep class com.alibaba.fastjson.** {*;}
-keep class sun.misc.Unsafe { *; }
-keep class com.taobao.** {*;}
-keep class com.alibaba.** {*;}
-keep class com.alipay.** {*;}
-keep class com.ut.** {*;}
-keep class com.ta.** {*;}
-keep class anet.**{*;}
-keep class anetwork.**{*;}
-keep class org.android.spdy.**{*;}
-keep class org.android.agoo.**{*;}
-keep class android.os.**{*;}
-dontwarn com.taobao.**
-dontwarn com.alibaba.**
-dontwarn com.alipay.**
-dontwarn anet.**
-dontwarn org.android.spdy.**
-dontwarn org.android.agoo.**
-dontwarn anetwork.**
-dontwarn com.ut.**
-dontwarn com.ta.**

# 小米辅助通道
-keep class com.xiaomi.** {*;}
-dontwarn com.xiaomi.**
# 华为辅助通道
-keep class com.huawei.** {*;}
-dontwarn com.huawei.**

    9.Application中的配置

/**
 * 初始化云推送通道
 * @param applicationContext
 */
private void initCloudChannel(Context applicationContext) {
    PushServiceFactory.init(applicationContext);
    final CloudPushService pushService = PushServiceFactory.getCloudPushService();
    pushService.register(applicationContext, new CommonCallback() {
        @Override
        public void onSuccess(final String response) {
            Log.d(TAG, "init cloudchannel success");    
        }

        @Override
        public void onFailed(String errorCode, String errorMessage) {
            Log.d(TAG, "init cloudchannel failed -- errorcode:" + errorCode + " -- errorMessage:" + errorMessage);
        }
    });
    this.createNotificationChannel();
    MiPushRegister.register(applicationContext, Constants.XIAOMI_APP_ID, Constants.XIAOMI_APP_KEY); // 初始化小米辅助推送
    HuaWeiRegister.register(applicationContext); // 接入华为辅助推送
    OppoRegister.register(applicationContext, Constants.OPPO_APPKEY, Constants.OPPO_APPSECRET); // appKey/appSecret在OPPO通道开发者平台获取
}



private void createNotif
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值