转自:https://www.yuque.com/huangrongcai/bolg/etfchp

参考:极光厂商通道集成指南

https://www.yuque.com/docs/share/307d6d68-0cc2-41b6-935b-4ca8c77c63d5#Q5EVY

本文是以它作蓝本作的精简优化。以便在集成中方便使用。

针对Android Studio开发环境,提供了Maven仓集成方式的SDK包。在开始开发前,您需要将SDK集成到您的Android Studio开发环境中。

本集成是在极光推送SDK已集成的基础上进行的。

注意厂商版本和JPush SDK版本保持一致(以JPushSDK3.6.0为例。如果需要升级jpush SDK版本,注意厂商SDK版本的升级)。


小米集成指南

主要步骤为:

  1. 1、使用JCenter自动化集成步骤
  2. 2、配置AndroidManifest.xml集成步骤
  3. 3、小米SDK的编译混淆问题
  4. 4、点击通知跳转到指定Activity
  5. 5、集成结果判断
  6. 6、厂商通道测试方法

1、使用JCenter自动化集成步骤

a.配置SDK的Maven仓地址

a1.打开Android Studio项目级“build.gradle”文件。

项目级:是指整个项目的根目录下

a2.确认Android Studio的Project根目录的主gradle中配置了jcenter支持。(新建project默认配置就支持)

buildscript {  repositories {  jcenter()  }  }  allprojects {repositories {  jcenter()  } }

b.添加编译依赖

b1.打开Android Studio应用级(或库级)module的“build.gradle”文件。

应用级(或库级):

在应用级(或库级)module的gradle中dependencies节点添加如下代码

注意厂商版本和JPush SDK版本保持一致(以JPushSDK3.6.0为例。如果需要升级jpush SDK版本,注意厂商SDK版本的升级)。


dependencies{  //...implementation 'cn.jiguang.sdk.plugin:xiaomi:3.6.0'} 

c.配置注册信息

c1.打开Android Studio应用级module的“build.gradle”文件。

注意:注册信息必然配置在应用级module的“build.gradle"文件。否则应用无法有效获取占位符配置的注册信息。

c2.在应⽤module的gradle中defaultConfig节点添加如下代码(不要遗漏前缀MI-)

 defaultConfig {//...manifestPlaceholders = [//START极光占位符配置信息:注意包名一致性JPUSH_PKGNAME:"您应用的包名",XIAOMI_APPKEY:"MI-您的应用对应的小米的APPKEY",//小米平台注册的appkey IAOMI_APPID:"MI-您的应用对应的小米的APPID"//小米平台注册的appid//...其他//END极光占位符配置信息]}

d.同步工程

在完成以上的配置后,点击工具栏中的gradle同步图标,完成“build.gradle”文件的同步,将相关依赖下载到本地。

说明

如果出现错误

1.请检查网络连接是否正常,以及检查gradle文件是否正确。

2.配置SDK的Maven仓地址

2、配置AndroidManifest.xml集成步骤

说明:JCenter自动化集成与配置AndroidManifest.xml集成二者选择一种即可,如果您完成以上步骤1,您可以跳过本段步骤2)

(略)

3、小米SDK的编译混淆问题

如果使用了proguard,需要在配置文件中加入,可以防止一个误报的warning导致无法成功编译:

-dontwarn com.xiaomi.push.**  -keep class com.xiaomi.push.**{*;} 

4、点击通知跳转到指定Activity

5、集成结果判断

a.成功

能成功调用接口获取到小米rid,存在小米集成成功但rid为null的情况。(需要在主进程中获取)

//在Application的生周命周期时调用获取小米rid的API方法。成功时会显示获取的rid。(可能为null的情况估计是初始未完成)

//再查看控制台日志显示。极光的日志显示集成厂商的一般有一个厂商插件用来辅助管理上传厂商的rid。

ushClient.getRegId(getApplicationContext()); 

b.失败

b.1.缺少appkey或appid。打印:

xiaomisdkappkeyorappidwasempty,pleasecheckyourmanifestconfig

b.2.当配置都正常时,小米sdk注册失败时miui会打印E级别的日志,一般是appkey、appid非法。打印:

"xiaomipushregisterfailed-errorCode:" + message.getResultCode() + ",reason:" + message.getReason()); 

b.3.当配置都正常时,无法通过方法MiPushClient.getRegId获得regID,需要检查一下小米应用是否开启推送功能。打印:

[PluginXiaomiPlatformsReceiver]xiaomipushregisterfailed-errorCode:22022,reason:Invalidpackagename:com.xxxxxx.xxxxxx  

6、小米厂商通道测试方法

  1. 在您的App中集成极光3.2.0及以上版本的SDK,并且按照「第三方通知通道集成指南」集成所需的厂商SDK
  2. 联系极光销售确认已开通厂商通道,如果成功开通则按照以下截图(极光官网-应用信息-推送设置-厂商通道)填写小米相关参数,保存后启用;

  • 保持App在前台运行,尝试对设备进行推送;
  • 如果应用收到消息,将App退到后台,并且杀掉所有App进程;
  • 再次进行推送,如果能够收到推送,则表明厂商通道集成成功。

华为集成指南

主要步骤为:

  • 第 1 步 添加配置信息
  • 第 2 步 配置SDK地址
  • 第 3 步 集成服务

1、添加华为 HMS SDK

第 1 步 添加配置文件

(以下示例适用于Android Studio )

将“agconnect-services.json”文件拷贝到Android Studio项目的应用级根目录下。

//agconnect-services.json文件在华为开发者中心网站 配置信息有更改的,此文件也需要重新下载,以保持一致性

a) 下载配置文件“agconnect-services.json”。

b) 将Android Studio切换到项目视图

c) 将“agconnect-services.json”添加到应用级module根目录下(参见下图)

第 2 步 配置SDK地址

添加配置文件后,需要在Android Studio项目中配置maven仓地址和AppGallery Connect插件地址。

1. 设置项目级的build.gradle(配置maven仓地址和AppGallery Connect插件地址。)

a. 打开AndroidStudio项目级build.gradle文件。

b. 在allprojects ->repositories里面配置maven仓地址。

c. 在buildscript->repositories中配置maven仓地址。

d. 在buildscript->dependencies中配置AppGallery Connect插件地址。

allprojects {repositories {//Add Mavenmaven {url 'https://developer.huawei.com/repo/'}  }
}
...
buildscript{repositories {//Add Mavenmaven {url 'https://developer.huawei.com/repo/'}  }dependencies {// Add this lineclasspath 'com.huawei.agconnect:agcp:1.3.1.300'}
}

2. 设置应用级module的build.gradle(添加编译依赖和AppGallery Connect插件地址。)

a. 打开应用级的build.gradle文件。

b. 在文件尾添加AppGallery Connect插件依赖。

c. 在“dependencies”中添加agconnect-core的编译依赖。

dependencies {// Add this lineimplementation 'com.huawei.agconnect:agconnect-core:1.3.1.300'
}
...
// Add to the bottom of the file
apply plugin: 'com.huawei.agconnect'

第 3 步 集成服务

完成以上步骤后,您已经成功将SDK基础库添加到您的工程。如果您要集成其他服务,请转到对应的服务页面参照指导集成。

1.添加编译依赖

b1.打开Android Studio应用级(或库级)module的“build.gradle”文件。

应用级(或库级):

在应用级(或库级)module的gradle中dependencies节点添加如下代码

注意厂商版本和JPush SDK版本保持一致(以JPushSDK3.6.0为例。如果需要升级jpush SDK版本,注意厂商SDK版本的升级)。


dependencies{  //...implementation 'com.huawei.hms:push:4.0.2.300'implementation 'cn.jiguang.sdk.plugin:huawei:3.6.0'} 

2、配置AndroidManifest.xml集成步骤

(略)

3、华为HMS SDK的编译混淆问题

如果使用了 proguard,需要在配置文件中加入,可以防止一个误报的 warning 导致无法成功编译

    -ignorewarning -keepattributes *Annotation* -keepattributes Exceptions -keepattributes InnerClasses -keepattributes Signature -keepattributes SourceFile,LineNumberTable -keep class com.hianalytics.android.**{*;} -keep class com.huawei.updatesdk.**{*;} -keep class com.huawei.hms.**{*;}

如果开发者使用了AndResGuard,需要在混淆配置文件中加入AndResGuard白名单。

```"R.string.hms*","R.string.connect_server_fail_prompt_toast","R.string.getting_message_fail_prompt_toast","R.string.no_available_network_prompt_toast","R.string.third_app_*","R.string.upsdk_*","R.layout.hms*","R.layout.upsdk_*","R.drawable.upsdk*","R.color.upsdk*","R.dimen.upsdk*","R.style.upsdk*","R.string.agc*"```

4.集成结果判断

成功

打印结果如下:

 I/JIGUANG-JPush: [PluginHuaweiPlatformsService] onNewToken:AOOkWX-Pg81gPcB7hneOV3928MOwA5Dm62NTocNU1DnfqvXYzubvh4rsGbVsSffmA3bZ0TZOMWhL62-BcNAyo4QPq9GmS5fK_Vz8sMZHYQW96OU8XiE2-i8YBJRmuRL6-QD/JIGUANG-JPush: [ActionHelper] doAction:third_actionD/JIGUANG-JPush: [ThirdPushManager] doAction,action:action_register_token,bundle:Bundle[{third_key_action=action_register_token, token=AOOkWX-Pg81gPcB7hneOV3928MOwA5Dm62NTocNU1DnfqvXYzubvh4rsGbVsSffmA3bZ0TZOMWhL62-BcNAyo4QPq9GmS5fK_Vz8sMZHYQW96OU8XiE2-i8YBJRmuRL6-Q, platform=2}],enable:trueI/JIGUANG-JPush: [ThirdPushManager] uploadRegID regid:AOOkWX-Pg81gPcB7hneOV3928MOwA5Dm62NTocNU1DnfqvXYzubvh4rsGbVsSffmA3bZ0TZOMWhL62-BcNAyo4QPq9GmS5fK_Vz8sMZHYQW96OU8XiE2-i8YBJRmuRL6-Q

失败

在华为控制台上面的应用没有开通推送服务配置配置。支持的Emui系统下会有如下打印获取不到token:

W/JIGUANG-JPush:[HWpushHelper] get token error:907122036: no right
或者是如下打印
I/JIGUANG-JPush:[HWpushHelper] token:

处理方法:华为控制台推送服务--服务状态请确认为开通,具体可以参考厂商通道相关参数申请教程--华为相关参数获取部分。

6.华为厂商测试方法

测试前请务必确认华为控制台推送服务--服务状态请确认为开通,具体可以参考厂商通道相关参数申请教程--华为相关参数获取部分

  1. 在您的App中集成极光3.2.0及以上版本的SDK,并且按照「第三方通知通道集成指南」集成所需的厂商SDK;
  2. 联系极光销售确认已开通厂商通道,如果成功开通则按照以下截图(极光官网应用信息-推送设置-厂商通道)填写华为相关参数,保存后启用;

3.将集成好的App(测试版本)安装在测试机(需要运行 EMUI版本 5.0及以上的手机)上,并且运行App;

4.保持App在前台运行,尝试对设备进行推送;

5.如果应用收到消息,将App退到后台,并且杀掉所有App进程;

6.再次进行推送,如果能够收到推送,则表明厂商通道集成成功。

极光推送集成厂商通道指南相关推荐

  1. 极光推送集成厂商通道(java)

    极光推送后台开发文档:https://docs.jiguang.cn//jpush/server/push/rest_api_v3_push/ 跟安卓商量好,只能启用安卓端已经集成的厂商通道: 以下封 ...

  2. Android 集成极光推送和厂商通道

    JPush 产品简介 Push 是经过考验的大规模 App 推送平台,每天推送消息量级为数百亿条. 开发者集成 SDK 后,可以通过调用 API 推送消息.同时,JPush 提供可视化的 web 端控 ...

  3. 极光推送(厂商通道参数申请和uniapp集成SDK),广播推送,别名设置,标签设置等

    本文旨在通过极光官方文档进行uniapp安卓移动应用的信息推广: 主要流程: 1.极光推送官方账号的注册和登录,创建应用,获取到appid 2.进行Android集成,配置应用包名和厂商通道参数(厂商 ...

  4. Android 极光推送华为厂商通道集成问题记录

    本人根据极光推送文档华为厂商通道集成指南集成华为厂商通道后,一直并未打印上面的成功集成华为厂商通道的标志,最后发现只在华为开发者平台创建项目及应用,但是没有开通项目推送服务权限,也是被自己蠢哭了,在华 ...

  5. android极光推送 小米,极光推送- 小米厂商通道集成指南 - 极光文档

    JPush SDK 小米通道集成指南 概述 在国内 Android 生态中,推送通道都是由终端与云端之间的长链接来维持,严重依赖于应用进程的存活状态.如今一些手机厂家会在自家 rom 中做系统级别的推 ...

  6. Flutter极光推送集成小米厂商通道【教程】

    极光推送官方已经开发出Flutter版的插件,地址:https://pub.dev/packages/jpush_flutter 在Flutter项目里面的pubspec.yaml里面依赖极光推送:j ...

  7. 极光小课堂 | 极光推送集成解决方案

    1. 极光推送集成背景 最近在研究推送和长连接,调研了市场上的几家平台,综合考虑选择了极光推送.长连接保活一直是一个大问题,尤其是 Android 方面.在最近谷歌公司的几次更新之后,Android ...

  8. Android华为推送踩坑,极光推送集成华为遇到的坑?

    一.前言: 首先极光推送对各个厂商通道对接是没有在开发者平台提供文档的,需要申请VIP资格后,极光才会提供对应对接文档. 1.极光普通集成 1.步骤1 图片.png 2.步骤2 图片.png 3.步骤 ...

  9. 极光推送集成APP和web服务

    一.申请极光账号 1.极光地址:https://www.jiguang.cn/push 2.创建极光平台服务应用. 二.配置web端服务 1.导jar <dependency><gr ...

最新文章

  1. Windows 消息循环(1) - 概览
  2. MongoDB系列:二、MongoDB常用操作练习
  3. texlive安装需要多久_LaTex编译环境安装与使用
  4. CodeForces - 1312D Count the Arrays(组合数学)
  5. js正则表达式之人民币匹配
  6. 如何还原桌面图标_如何为Windows 10桌面图标还原或更改文本的默认外观?
  7. golang实现聊天室(五)
  8. 【转】Python学习路线
  9. 阿里云Serverless,全球第一!
  10. kudu设计-tablet
  11. 新手学习日记-Javascript和Html 1:如何在html中调用Js函数
  12. php随机产生4乘4矩阵,matlab函数rand:产生均匀分布的随机数或矩阵的函数
  13. 关于mysql的时区(下):如何设置mysql的时区
  14. 读书、学习、工作和生活中收集的20条经典语录:1-20
  15. 解决主机和虚拟机相互ping通,但是虚拟机无法上网
  16. websocket访问ServletAPI
  17. ZCUM-1948: #6029. 「雅礼集训 2017 Day1」市场 线段树区间更新
  18. 如何手动对apk进行签名?
  19. 计算机科学与技术前瞻教育总结,计算机科学与技术专业的研究状况及前瞻.doc...
  20. IDEA坑: log.info爆红和Mapper没有跳转箭头(插件安装)

热门文章

  1. Windows如何升级go版本
  2. FLASH片头动画制作经验
  3. 简单的图片格式转换器
  4. 数据采集软件 使用手记
  5. [UE4]使用材质将图片变成黑白
  6. 对宏offsetof理解
  7. 操作系统第一次实验-短作业优先调度算法
  8. 帖子中的图片存储_一个2016年的恶意PS的图片谣言,竟能引起3000多条转发?
  9. Vue单位转换 px转换vw
  10. OpenStack实战分享:Kolla多节点部署加Ceph后端