Android 接入阿里云推送com.aliyun.ams:alicloud-android-push:3.7.4步骤(一)
开发指南 - 移动推送 - 阿里云https://help.aliyun.com/document_detail/52906.html
1.在repositories{}代码段中配置maven仓库地址。
allprojects {repositories {jcenter()maven {url 'http://maven.aliyun.com/nexus/content/repositories/releases/'}// 配置HMS Core SDK的Maven仓地址。maven {url 'https://developer.huawei.com/repo/'}}
}
2.在android{}代码段中配置应用包名和NDK。
android {......defaultConfig {applicationId "com.xxx.xxx" //包名......ndk {//选择要添加的对应cpu类型的.so库。此处仅为示意,推送支持所有主流类型,请根据设备硬件选择abiFilters 'armeabi', 'x86'}......}......
}
为了兼容Android 12建议去掉ndk{}这段代码
3.如果在添加以上abFilter配置后Android Studio出现以下提示:
NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin.
在Project根目录的gradle.properties文件中添加:
android.useDeprecatedNdk=true
4.在dependencies{}代码段中添加SDK依赖。
implementation 'com.aliyun.ams:alicloud-android-push:3.7.4'//华为依赖implementation 'com.aliyun.ams:alicloud-android-third-push-huawei:3.7.4'//小米依赖implementation 'com.aliyun.ams:alicloud-android-third-push-xiaomi:3.7.4'//OPPO依赖implementation 'com.aliyun.ams:alicloud-android-third-push-oppo:3.7.4'//vivo依赖implementation 'com.aliyun.ams:alicloud-android-third-push-vivo:3.7.4'//魅族依赖implementation 'com.aliyun.ams:alicloud-android-third-push-meizu:3.7.4'//谷歌依赖implementation 'com.aliyun.ams:alicloud-android-third-push-fcm:3.7.4'
5.在AndroidManifest文件中设置AppKey、AppSecret:
<application android:name="*****"><meta-data android:name="com.alibaba.app.appkey" android:value="*****"/> <!-- 请填写你自己的- appKey --><meta-data android:name="com.alibaba.app.appsecret" android:value="****"/> <!-- 请填写你自己的appSecret -->
</application>
6.权限获取
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_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.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.REORDER_TASKS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
7.消息接收Receiver配置
import android.content.Context;
import android.util.Log;import com.alibaba.sdk.android.push.MessageReceiver;
import com.alibaba.sdk.android.push.notification.CPushMessage;import java.util.Map;public class MyMessageReceiver extends MessageReceiver {// 消息接收部分的LOG_TAGpublic static final String REC_TAG = "receiver";@Overridepublic void onNotification(Context context, String title, String summary, Map<String, String> extraMap) {// TODO处理推送通知Log.e("MyMessageReceiver", "Receive notification, title: " + title + ", summary: " + summary + ", extraMap: " + extraMap);}@Overridepublic void onMessage(Context context, CPushMessage cPushMessage) {Log.e("MyMessageReceiver", "onMessage, messageId: " + cPushMessage.getMessageId() + ", title: " + cPushMessage.getTitle() + ", content:" + cPushMessage.getContent());}@Overridepublic void onNotificationOpened(Context context, String title, String summary, String extraMap) {Log.e("MyMessageReceiver", "onNotificationOpened, title: " + title + ", summary: " + summary + ", extraMap:" + extraMap);}@Overrideprotected void onNotificationClickedWithNoAction(Context context, String title, String summary, String extraMap) {Log.e("MyMessageReceiver", "onNotificationClickedWithNoAction, title: " + title + ", summary: " + summary + ", extraMap:" + extraMap);}@Overrideprotected 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);}@Overrideprotected void onNotificationRemoved(Context context, String messageId) {Log.e("MyMessageReceiver", "onNotificationRemoved");}
}
8.将该receiver添加到AndroidManifest.xml文件中:
<!-- 消息接收监听器 (用户可自主扩展) -->
<receiverandroid: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>
9.处理Android 8+以上设备不显示通知栏问题(请放置在Application文件中,同时请注意服务器端也需要配置,请参考下面链接)
/*** 阿里云推送兼容Android8*/private void aliAndroid8() {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);// 通知渠道的id。String id = "1";// 用户可以看到的通知渠道的名字。CharSequence name = "notification channel";// 用户可以看到的通知渠道的描述。String description = "notification description";int importance = NotificationManager.IMPORTANCE_HIGH;NotificationChannel mChannel = new NotificationChannel(id, name, importance);// 配置通知渠道的属性。mChannel.setDescription(description);// 设置通知出现时的闪灯(如果Android设备支持的话)。mChannel.enableLights(true);mChannel.setLightColor(Color.RED);// 设置通知出现时的震动(如果Android设备支持的话)。mChannel.enableVibration(true);mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});// 最后在notificationmanager中创建该通知渠道。mNotificationManager.createNotificationChannel(mChannel);}}
Android 8.0以上设备接收不到推送通知https://help.aliyun.com/document_detail/67398.html
Android 接入阿里云推送com.aliyun.ams:alicloud-android-push:3.7.4步骤(一)相关推荐
- Android集成阿里云推送功能
官方集成参考网址:https://help.aliyun.com/document_detail/51056.html?spm=a2c4g.11186623.6.587.64ed7fa8NY9DN8 ...
- ionic集成阿里云推送
阿里云推送是比较廉价,快速的推送管理平台,目前在ionic上有一个插件可以直接使用它,不需要官网介绍的那些复杂步骤.插件地址:https://github.com/llwwbb/cordova-plu ...
- Android集成阿里消息推送
1.阿里消息推送的官方文档地址 https://help.aliyun.com/document_detail/30054.html?spm=a2c4g.11174283.3.2.136c6d1669 ...
- 阿里云推送 AndroidSDK 3.0 快速集成
文章目录 0.控制台中配置好产品应用 1. 基础接入配置使用 1.1配置根目录的 build.gradle文件 1.2配置要接入module的build.gradle文件 1.3配置清单文件 2. 接 ...
- 阿里云推送 SDK iOS 端 配置
阿里云 SDK 配置 请依官方为主,毕竟已经很详细了 https://help.aliyun.com/document_detail/30072.html?spm=5176.doc30071.6.64 ...
- react-native集成阿里云推送
1.使用组件 react-native-aliyun-push 2.安装及集成 *注意在之前必须要到阿里云注册移动推送服务并建好ios和android的app,里面的appkey和AppSecret到 ...
- 影视网站之发送阿里云推送邮件教程
阿里云邮件推送确实不错,其他的云厂商暂时没发现有这种推送邮件的功能,每个用户每天有200封免费发送的邮件,也可以进行付费购买.其实很早之前就使用过这个邮件进行推送,为了方便以后去熟悉这个繁琐的过程,记 ...
- Android接入极光消息推送
极光消息推送: 极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能够及时地推送到终端用户手机上,让开发者积极地保持与用户的连接 主要功能 保持与服务器的长连接,以便消息能够即时推送到达客 ...
- Android 接入华为通知栏推送教程(特此整理)
前言: 受华为开发者联盟工作人员的邀约,特此将本篇博客重新整理一遍,希望让更多人受益,大家也可以参加华为开发者联盟推出活动,去提问自己的问题或者投稿. 扫二维码就可以参与活动哦. 首先本教程是基于华为 ...
- Android 阿里云推送,针对安卓8.0、9.0以上系统收不到推送 的补丁文档
官方的文档地址: Android 8.0以上: https://help.aliyun.com/knowledge_detail/67398.html Android 9.0以上: https://h ...
最新文章
- python找不到tushare_python tushare安装
- C++ 强制类型转换(转载)
- mysql 线程_MySQL服务器线程数的查看方法详解
- vue3.0js 非prop属性的值和setup函数的使用
- 方立勋_30天掌握JavaWeb_JDBC、SQL防注入(一)
- Python机器学习---何为机器学习?
- 信息学奥赛一本通 1100:金币 | 1969:【15NOIP普及组】金币 | OpenJudge NOI 1.5 45 | 洛谷 P2669 [NOIP2015 普及组] 金币
- Intellij Idea插件利器推荐大全
- 【月报】Java知音的一月汇总
- 荣耀x10max能不能升级为鸿蒙,荣耀X10 Max即将亮相:容量很“放肆” 身材却很“克制”...
- 网站建设如何选择CMS网站系统
- 程序员的自我修炼——新手如何学好编程
- python执行外部方法_python执行外部程序的常用方法小结
- 万达商管冲刺香港上市:上半年净赚20亿元,已提前“套现”约63亿
- LaTeX数学表达式
- 【优雅解决】:换源后 sudo apt-get update 出现 N: Updating from such a repository can't be done securely……
- criteo marketing api 相关
- html网页表格中加超链接,用html给div加类似a标签的超链接(转)
- 已经解决globalsign证书导致淘宝京东等chrome safari无法访问
- 数据寻址方式(10种)