一:小米开放平台–推送服务
1:新建应用,获取AppID,AppKey
2:下载jar包,放到项目的libs目录下
3:在清单文件AndroidManifest.xml中,配置下面代码
(1)权限

<permission android:name="自己的包名.permission.MIPUSH_RECEIVE" android:protectionLevel="signature" />
<uses-permission android:name="自己的包名.permission.MIPUSH_RECEIVE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_TASKS" />

(2)核心功能

 <serviceandroid:name="com.xiaomi.push.service.XMJobService"android:enabled="true"android:exported="false"android:permission="android.permission.BIND_JOB_SERVICE"android:process=":pushcore" /><serviceandroid:name="com.xiaomi.push.service.XMPushService"android:enabled="true"android:process=":pushcore" /><serviceandroid:name="com.xiaomi.mipush.sdk.PushMessageHandler"android:enabled="true"android:exported="true" /><serviceandroid:name="com.xiaomi.mipush.sdk.MessageHandleService"android:enabled="true" />
<receiverandroid:name="com.xiaomi.push.service.receivers.NetworkStatusReceiver"android:exported="true"><intent-filter><action android:name="android.net.conn.CONNECTIVITY_CHANGE" /><category android:name="android.intent.category.DEFAULT" /></intent-filter>
</receiver>
<receiverandroid:name=".自己的XiaoMiPushReceiver"android:exported="true"><intent-filter><action android:name="com.xiaomi.mipush.RECEIVE_MESSAGE" /></intent-filter><intent-filter><action android:name="com.xiaomi.mipush.MESSAGE_ARRIVED" /></intent-filter><intent-filter><action android:name="com.xiaomi.mipush.ERROR" /></intent-filter>
</receiver>
<receiverandroid:name="com.xiaomi.push.service.receivers.PingReceiver"android:exported="false"android:process=":pushcore"><intent-filter><action android:name="com.xiaomi.push.PING_TIMER" /></intent-filter>
</receiver><meta-dataandroid:name="XIAOMI_APPKEY"android:value="自己的KEY" />
<meta-dataandroid:name="XIAOMI_APPID"android:value="自己的ID" />

4:清单文件中XiaoMiPushReceiver需要继承PushMessageReceiver,添加自己的逻辑
5:在Application中配置小米推送服务的初始化代码

 MiPushClient.registerPush(this, MIAPP_ID, MIAPP_KEY);

6:通过绑定标签,账户去推送

MiPushClient.setUserAccount(this,“自己定义的”,null);
MiPushClient.setAlias(this,“自己定义的”,null);

所有工作完成之后,可以去小米开放平台发送推送消息,手机就可以收到了。

二:华为开发者联盟–推送服务
1:新建应用,配置agconnect-services.json文件,在应用级的根目录下
2:项目级别的build.gradle文件配置如下:

buildscript {repositories {maven { url 'https://developer.huawei.com/repo/' }  // 配置HMS Core SDK的Maven仓地址。}dependencies {classpath 'com.huawei.agconnect:agcp:1.4.1.300' // 增加agcp插件配置。}
}
allprojects {repositories {maven {url 'http://developer.huawei.com/repo'}// 配置HMS Core SDK的Maven仓地址。}
}

3:应用级别build.gradle文件配置如下:

 implementation 'com.huawei.hms:push:5.3.0.301' //版本号根据官方最新发布的修改

4:在清单文件AndroidManifest.xml中配置下面代码:

<meta-dataandroid:name="com.huawei.hms.client.channel.androidMarket"android:value="false" /><service android:name="自己的文件HuaWeiPushRevicer" android:exported="false"><intent-filter><action android:name="com.huawei.push.action.MESSAGING_EVENT"/></intent-filter>
</service>
<meta-dataandroid:name="push_kit_auto_init_enabled"android:value="false" />

5:在业务逻辑中获取到唯一标识token

new Thread() {   // 创建一个新线程@Overridepublic void run() {try {// 从agconnect-service.json文件中读取appIdString appId = AGConnectServicesConfig.fromContext(LoginActivity.this).getString("client/app_id");// 输入token标识"HCM"String tokenScope = "HCM";String token = HmsInstanceId.getInstance(LoginActivity.this).getToken(appId, tokenScope);Log.i("华为token", "get token: " + token);// 判断token是否为空if(!TextUtils.isEmpty(token)) {submitToken(token);}} catch (ApiException e) {Log.e("华为token", "get token failed, " + e);}}
}.start();

6:获取到token之后 就可以去华为开发者联盟后台去发送测试推送消息了,不出意外是可以收到推送的
7:需要注意的是如果直接运行到手机上

上面需要选择发布版本运行,如果是debug运行,获取token会提示证书指纹验证失败。

Android小米,华为平台对接厂商推送,相关SDK集成步骤相关推荐

  1. Android厂商推送冲突了。。,kotlin语法

    dependencies { - implementation 'cn.jiguang.sdk:jpush:3.3.9' implementation 'cn.jiguang.sdk:jcore:2. ...

  2. Android厂商推送冲突了。。,三级缓存对性能的影响

    以小米为例,我们看看极光引入的cn.jiguang.sdk.plugin:xiaomi:3.3.9 arr包是如何工作的: 可以看到极光提供的这个arr包中直接把小米官方提供的MiPush_SDK_C ...

  3. unipush解决华为、小米、魅族收不到厂商推送的问题

    保证厂商推送设置AppID,AppKey,AppSecret正确 在uniapp程序入口加入以下代码: var pinf = plus.push.getClientInfo(); var cid = ...

  4. Android 手机厂商推送服务调研

    由于谷歌服务在国内不能用,Android 的推送真是一大痛点,但也推动了国内一批做第三方服务的厂商.第三方推送做的比较好的有极光.个推.百度.友盟,经过比较之后,最后选择了极光推送.其实这些第三方推送 ...

  5. Android 多厂商推送集成

    前言 按劳分配,多劳多做.好不容易集成完了个推的推送 SDK,美滋滋的准备划一会儿水,鸟哥吩咐为了保证应用杀死后也可以接收到推送,并且降低服务端的维护多渠道的开发成本,还得集成下个推的多厂商渠道.等等 ...

  6. Android厂商推送接入

    先到极光推送后台开通厂商推送功能(此功能需要收费,需要联系商务开通) 到各厂商开发者平台注册应用,然后对应开启推送功能,获取对应的key和secret 需要注意的是,有些厂商在申请推送功能时审核时间有 ...

  7. .net平台借助第三方推送服务在推送Android消息(极光推送) 转

    分类: .net外部工具接口(3) .net知识精华(29) 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近做的.net项目(Windows Service)需要向Android手机发送推 ...

  8. Android厂商推送冲突了。。(1),2021年Android面试心得

    这个MiPushReceiver我们查看源码会发现它主要是处理并转发小米厂商推送的各种事件,MiPushReceiver同样是继承自小米push sdk中的PushMessageReceiver,Mi ...

  9. 小米华为苹果推送相关Nginx转发推送配置

    小米华为苹果推送相关Nginx转发推送配置## 标题 1.1推送类型及涉及的推送url 目前涉及到的推送类型包括: 1).APNS苹果推送 2).华为厂商推送 3).小米厂商推送 4).魅族厂商推送 ...

最新文章

  1. 算法导论——动态规划:0-1背包问题(完全解)
  2. Mysql动态数据多条件查询
  3. cannot find #include caffe/proto/caffe.pb.h
  4. DIRECTORY_SEPARATOR
  5. 补习系列(6)- springboot 整合 shiro 一指禅
  6. 启动kafka报错:__consumer_offsets-22\00000000000000000000.index.swap: 另一个程序正在使用此文件,进程无法访问。
  7. 企业库实现AOP的几种方法
  8. 升级Spring Boot 2.x后RelaxedPropertyResolver不可用的解决方案
  9. 磨刀不误砍柴工—ElasticSearch的schema详解
  10. 高手是怎样炼成的:精妙SQL语句介绍
  11. Teardrop攻击——发送虚假IP包信息
  12. Android离线文字转语音(TTS)原生实现
  13. linux 命令硬盘指示灯闪烁,macOS下移动硬盘无法挂载且硬盘灯一直闪烁的解决方法...
  14. Python 等值线生成(TIN三角网)
  15. 目的地址,源地址防火墙双向nat转换
  16. 论网络喷子的功力-关于全栈工程师那篇文
  17. 类***Servlet不是Servlet的解决办法
  18. 前端HTML弹窗的实现
  19. 技术横向发展?还是纵向发展?
  20. 关于flask入门教程-分页的几种方式

热门文章

  1. 《人工智能导论》第二章 概念表示
  2. php 数组下标初始化,php中如何初始化一个数组 | 学步园
  3. 【无标题】VR插件ViveInputUtility---简单介绍,加手柄按键介绍
  4. node.js~创建目录并删除
  5. 扫描神器nmap最佳实践使用
  6. 数组、队列、堆、栈、链表、树、图
  7. 监理工程师准考证打印常见问题汇总!
  8. 2021年中国SAP应用程序服务市场趋势报告、技术动态创新及2027年市场预测
  9. ctfshow web入门 php特性
  10. 接入微信支付伪代码(Springboot实现)