开发指南 - 移动推送 - 阿里云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步骤(一)相关推荐

  1. Android集成阿里云推送功能

    官方集成参考网址:https://help.aliyun.com/document_detail/51056.html?spm=a2c4g.11186623.6.587.64ed7fa8NY9DN8 ...

  2. ionic集成阿里云推送

    阿里云推送是比较廉价,快速的推送管理平台,目前在ionic上有一个插件可以直接使用它,不需要官网介绍的那些复杂步骤.插件地址:https://github.com/llwwbb/cordova-plu ...

  3. Android集成阿里消息推送

    1.阿里消息推送的官方文档地址 https://help.aliyun.com/document_detail/30054.html?spm=a2c4g.11174283.3.2.136c6d1669 ...

  4. 阿里云推送 AndroidSDK 3.0 快速集成

    文章目录 0.控制台中配置好产品应用 1. 基础接入配置使用 1.1配置根目录的 build.gradle文件 1.2配置要接入module的build.gradle文件 1.3配置清单文件 2. 接 ...

  5. 阿里云推送 SDK iOS 端 配置

    阿里云 SDK 配置 请依官方为主,毕竟已经很详细了 https://help.aliyun.com/document_detail/30072.html?spm=5176.doc30071.6.64 ...

  6. react-native集成阿里云推送

    1.使用组件 react-native-aliyun-push 2.安装及集成 *注意在之前必须要到阿里云注册移动推送服务并建好ios和android的app,里面的appkey和AppSecret到 ...

  7. 影视网站之发送阿里云推送邮件教程

    阿里云邮件推送确实不错,其他的云厂商暂时没发现有这种推送邮件的功能,每个用户每天有200封免费发送的邮件,也可以进行付费购买.其实很早之前就使用过这个邮件进行推送,为了方便以后去熟悉这个繁琐的过程,记 ...

  8. Android接入极光消息推送

    极光消息推送: 极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能够及时地推送到终端用户手机上,让开发者积极地保持与用户的连接 主要功能 保持与服务器的长连接,以便消息能够即时推送到达客 ...

  9. Android 接入华为通知栏推送教程(特此整理)

    前言: 受华为开发者联盟工作人员的邀约,特此将本篇博客重新整理一遍,希望让更多人受益,大家也可以参加华为开发者联盟推出活动,去提问自己的问题或者投稿. 扫二维码就可以参与活动哦. 首先本教程是基于华为 ...

  10. Android 阿里云推送,针对安卓8.0、9.0以上系统收不到推送 的补丁文档

    官方的文档地址: Android 8.0以上: https://help.aliyun.com/knowledge_detail/67398.html Android 9.0以上: https://h ...

最新文章

  1. python找不到tushare_python tushare安装
  2. C++ 强制类型转换(转载)
  3. mysql 线程_MySQL服务器线程数的查看方法详解
  4. vue3.0js 非prop属性的值和setup函数的使用
  5. 方立勋_30天掌握JavaWeb_JDBC、SQL防注入(一)
  6. Python机器学习---何为机器学习?
  7. 信息学奥赛一本通 1100:金币 | 1969:【15NOIP普及组】金币 | OpenJudge NOI 1.5 45 | 洛谷 P2669 [NOIP2015 普及组] 金币
  8. Intellij Idea插件利器推荐大全
  9. 【月报】Java知音的一月汇总
  10. 荣耀x10max能不能升级为鸿蒙,荣耀X10 Max即将亮相:容量很“放肆” 身材却很“克制”...
  11. 网站建设如何选择CMS网站系统
  12. 程序员的自我修炼——新手如何学好编程
  13. python执行外部方法_python执行外部程序的常用方法小结
  14. 万达商管冲刺香港上市:上半年净赚20亿元,已提前“套现”约63亿
  15. LaTeX数学表达式
  16. 【优雅解决】:换源后 sudo apt-get update 出现 N: Updating from such a repository can't be done securely……
  17. criteo marketing api 相关
  18. html网页表格中加超链接,用html给div加类似a标签的超链接(转)
  19. 已经解决globalsign证书导致淘宝京东等chrome safari无法访问
  20. 数据寻址方式(10种)

热门文章

  1. 聚合物/硅胶色谱填粒径1.7μm到50μm
  2. 开局一张图,理解Vuex
  3. 输入法编程之 光标跟随
  4. https 双向认证基本配置学习
  5. 浅谈程序脱壳后的优化
  6. python双线性插值函数_OpenCV ——双线性插值(Bilinear interpolation)
  7. 【详细教程】阿里云ECS服务器搭建
  8. 滑动平均滤波c语言_9种简单的数字滤波算法(C语言源程序)
  9. 防止撤回插件 Android,微信防撤回插件
  10. 电子料盘 电容 物料标识识别