Android小米,华为平台对接厂商推送,相关SDK集成步骤
一:小米开放平台–推送服务
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集成步骤相关推荐
- Android厂商推送冲突了。。,kotlin语法
dependencies { - implementation 'cn.jiguang.sdk:jpush:3.3.9' implementation 'cn.jiguang.sdk:jcore:2. ...
- Android厂商推送冲突了。。,三级缓存对性能的影响
以小米为例,我们看看极光引入的cn.jiguang.sdk.plugin:xiaomi:3.3.9 arr包是如何工作的: 可以看到极光提供的这个arr包中直接把小米官方提供的MiPush_SDK_C ...
- unipush解决华为、小米、魅族收不到厂商推送的问题
保证厂商推送设置AppID,AppKey,AppSecret正确 在uniapp程序入口加入以下代码: var pinf = plus.push.getClientInfo(); var cid = ...
- Android 手机厂商推送服务调研
由于谷歌服务在国内不能用,Android 的推送真是一大痛点,但也推动了国内一批做第三方服务的厂商.第三方推送做的比较好的有极光.个推.百度.友盟,经过比较之后,最后选择了极光推送.其实这些第三方推送 ...
- Android 多厂商推送集成
前言 按劳分配,多劳多做.好不容易集成完了个推的推送 SDK,美滋滋的准备划一会儿水,鸟哥吩咐为了保证应用杀死后也可以接收到推送,并且降低服务端的维护多渠道的开发成本,还得集成下个推的多厂商渠道.等等 ...
- Android厂商推送接入
先到极光推送后台开通厂商推送功能(此功能需要收费,需要联系商务开通) 到各厂商开发者平台注册应用,然后对应开启推送功能,获取对应的key和secret 需要注意的是,有些厂商在申请推送功能时审核时间有 ...
- .net平台借助第三方推送服务在推送Android消息(极光推送) 转
分类: .net外部工具接口(3) .net知识精华(29) 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近做的.net项目(Windows Service)需要向Android手机发送推 ...
- Android厂商推送冲突了。。(1),2021年Android面试心得
这个MiPushReceiver我们查看源码会发现它主要是处理并转发小米厂商推送的各种事件,MiPushReceiver同样是继承自小米push sdk中的PushMessageReceiver,Mi ...
- 小米华为苹果推送相关Nginx转发推送配置
小米华为苹果推送相关Nginx转发推送配置## 标题 1.1推送类型及涉及的推送url 目前涉及到的推送类型包括: 1).APNS苹果推送 2).华为厂商推送 3).小米厂商推送 4).魅族厂商推送 ...
最新文章
- 算法导论——动态规划:0-1背包问题(完全解)
- Mysql动态数据多条件查询
- cannot find #include caffe/proto/caffe.pb.h
- DIRECTORY_SEPARATOR
- 补习系列(6)- springboot 整合 shiro 一指禅
- 启动kafka报错:__consumer_offsets-22\00000000000000000000.index.swap: 另一个程序正在使用此文件,进程无法访问。
- 企业库实现AOP的几种方法
- 升级Spring Boot 2.x后RelaxedPropertyResolver不可用的解决方案
- 磨刀不误砍柴工—ElasticSearch的schema详解
- 高手是怎样炼成的:精妙SQL语句介绍
- Teardrop攻击——发送虚假IP包信息
- Android离线文字转语音(TTS)原生实现
- linux 命令硬盘指示灯闪烁,macOS下移动硬盘无法挂载且硬盘灯一直闪烁的解决方法...
- Python 等值线生成(TIN三角网)
- 目的地址,源地址防火墙双向nat转换
- 论网络喷子的功力-关于全栈工程师那篇文
- 类***Servlet不是Servlet的解决办法
- 前端HTML弹窗的实现
- 技术横向发展?还是纵向发展?
- 关于flask入门教程-分页的几种方式