如何使用Android的移动应用推送SDK
移动应用开发:iOS或Android基础 #生活知识# #编程教程#
阿里移动推送(Alibaba Cloud Mobile Push)是基于大数据的移动智能推送服务,帮助App快速集成移动推送的功能。在实现高效、精确、实时的移动推送的同时,降低了开发成本并提高了用户活跃度和应用的留存率。
初始化
初始化的操作请参见SDK初始化。
使用方法
在应用中注册和启动移动推送。该操作封装在SDK初始化中,无需额外操作。
创建消息接收Receiver,继承自com.alibaba.sdk.android.push.MessageReceiver,并在对应回调中添加业务处理逻辑,参照以下代码执行。
public class MyMessageReceiver extends MessageReceiver { // 消息接收部分的LOG_TAG public static final String REC_TAG = "receiver"; @Override public void onNotification(Context context, String title, String summary, Map<String, String> extraMap) { // TODO 处理推送通知 Log.e("MyMessageReceiver", "Receive notification, title: " + title + ", summary: " + summary + ", extraMap: " + extraMap); } @Override public void onMessage(Context context, CPushMessage cPushMessage) { Log.e("MyMessageReceiver", "onMessage, messageId: " + cPushMessage.getMessageId() + ", title: " + cPushMessage.getTitle() + ", content:" + cPushMessage.getContent()); } @Override public void onNotificationOpened(Context context, String title, String summary, String extraMap) { Log.e("MyMessageReceiver", "onNotificationOpened, title: " + title + ", summary: " + summary + ", extraMap:" + extraMap); } @Override protected void onNotificationClickedWithNoAction(Context context, String title, String summary, String extraMap) { Log.e("MyMessageReceiver", "onNotificationClickedWithNoAction, title: " + title + ", summary: " + summary + ", extraMap:" + extraMap); } @Override protected void onNotificationReceivedInApp(Context context, String title, String summary, Map<String, String> extraMap, int openType, String openActivity, String openUrl) { Log.e("MyMessageReceiver", "onNotificationReceivedInApp, title: " + title + ", summary: " + summary + ", extraMap:" + extraMap + ", openType:" + openType + ", openActivity:" + openActivity + ", openUrl:" + openUrl); } @Override protected void onNotificationRemoved(Context context, String messageId) { Log.e("MyMessageReceiver", "onNotificationRemoved"); } }
将该receiver添加到AndroidManifest.xml中。
<!-- 消息接收监听器 (用户可自主扩展) --> <receiver android:name=".MyMessageReceiver" 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>
在SDK初始化的代码逻辑里,已经封装了以下动作的业务逻辑,无需您做任何额外的操作。
关联移动推送到某账号当账号登录时,App会自动关联移动推送到当前账号。参见API服务/uc/bindPushChannel。
取消关联移动推送到某账号当账号登出时,App会自动取消关联移动推送到当前账号。参见API服务/uc/unbindPushChannel。
告警功能
告警功能依赖设备和用户绑定,用户和设备的绑定已经封装在SDK初始化中,您只需关注告警功能的业务逻辑即可。
消息类型说明
移动应用推送支持以下两种类型的消息下发。
通知类型
服务器下发的通知,SDK会自动处理,根据下发配置标题和内容自动弹出通知,无需在MyMessageRecevier中添加业务代码。
消息类型
服务器下发的消息可以在初始化中创建的MyMessageReceiver对应的回调方法中获得。如需弹出通知,需要自己根据下发的内容在此模式下弹出通知。
三方辅助推送通道
当App不在运行状态时,通过三方辅助推送通道可以将消息离线推送到手机。该推送通道无需额外初始化,您只需申请和配置好三方辅助的推送通道即可,详细参见移动应用推送开发指南。
目前支持三方辅助推送通道的手机有:小米、华为、VIVO 、OPPO。
小米、OPPO的三方推送:在初始化时配置参数,详细请参见SDK初始化。
华为、VIVO的三方推送:需要在AndroidManifest.xml配置如下相关信息。
说明
测试华为离线推送功能时,须确保测试App的签名与提交至华为推送控制台的App签名保持一致。
<!-- huawei push start --> <meta-data android:name="com.huawei.hms.client.appid" android:value="your huawei push appid" /> <!-- huawei push end --> <!-- vivo push start --> <meta-data android:name="com.vivo.push.api_key" android:value="your vivo push api_key" /> <meta-data android:name="com.vivo.push.app_id" android:value="your vivo push app id" /> <!-- vivo push start -->
混淆配置
在proguard-rules.pro文件中,加入以下代码,排除不需要被混淆的类和方法。
-keepclasseswithmembernames class ** { native <methods>; } -keepattributes Signature -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.**
网址:如何使用Android的移动应用推送SDK https://www.yuejiaxmz.com/news/view/112422
相关内容
Android中谷歌语音识别应用探究Android tools:replace的使用
厂商消息分类使用指南
对于 Android 用户来说,设备的续航可能是一个令人困扰的难题。在使用不当的情况下,多少会出现「充电三小时,使用五分钟」的揪心现象。那么该如何有效省电?看完这篇文章,你就知道。
【阿里云生活物联网架构师专题 ③】esp32 sdk 直连接入天猫精灵IOT开放平台,实现天猫精灵找队友零配网功能和语音控制;
使用Android studio完成简易智能家居APP的制作(含源码工程包)
手机(移动电话)
Android程序设计 大作业:基于安卓的校园生活服务系统的设计与实现
【Android程序设计】 大作业:基于安卓的校园生活服务系统的设计与实现
Android应用轻松省电,揭秘白千万省略技巧