Android华为推送集成与测试

Android的推送一直是个大坑,好在统一联盟的的推送在测试了,希望早点一统推送,挖去开发者的心病吧。在此之前,该踩坑还是踩坑,按官方文档一步步踩吧。

集成

官方的开发准备

  • 先集成必备套件 HMS SDK Agent

  1. 下载地址:HMSAgent_2.6.3.301.zip
  2. 解压后运行GetHMSAgent_cn.bat文件生成我们所需的文件,输入我们的应用包名和后台配置应用生成的appid,回车运行, cpid没有可以跳过继续,按需集成所需要的功能。
    Android华为推送集成与测试_第1张图片Android华为推送集成与测试_第2张图片
  3. 代码拷贝
  • 标准的AS项目直接拷贝到app/src/main/下即可
  • 转换成AS项目的我将java下的文件夹及AppManifestConfig.xml文件拷贝至src/下,结构如图Android华为推送集成与测试_第3张图片

Android华为推送集成与测试_第4张图片

  • 自动集成

    项目build.gradle配置

 allprojects {
            repositories {
                ···
                maven {url 'http://developer.huawei.com/repo/'}
            }
        }  

app的build.gradle配置

 dependencies {
    ···
    //说明:{version} 替换为实际的版本号,如:compile 'com.huawei.android.hms:push:2.6.3.301'    
    compile 'com.huawei.android.hms:push:{version}'         
  }        
    

最后进行同步配置

  • 手动集成

    毕竟现在都用AS了,自动集成的方便手动集成你想象不到啊,奈何还有Eclipse转成AS的项目,怎么都下载不到依赖包,只能老老实实手动集成了

  • SDK下载:[hmssdk-gradle-2.6.3.301.zip

    ](https://obs.cn-north-2.myhwclouds.com/hms-ds-wf/sdk/hmssdk-gradle-2.6.3.301.zip)

  • 解压后进行代码拷贝,这里文件夹结构简单,直接全部复制到对应工程相应文件夹即可
    Android华为推送集成与测试_第5张图片
    好像。。。也挺简单。。。

开始配置与初始化

  1. 配置manifest文件**<记得更改appid和${PACKAGE_NAME}>**
    因为当前应用只需要推送功能,所以我只集成了推送必须项
  • 配置appid application节点下
联盟网站应用的服务详情。-->  
android:value="appid=xxx">  
    
  • 配置自定义的Application,这个开发过程中我们都会做的
  • 配置BridgeActivity --定义了HMS SDK中一些跳转所需要的透明页面
  
  

  • 在manifest节点下增加所需权限
    
    
    
    
  
  
  
  
  
 








 
  • 配置Receiver


    
    
        
            
            
            
            
            
            
        
    

Android华为推送集成与测试_第6张图片

  1. Agent初始化
    在自定义的Application中的onCreat中调用**com.huawei.android.hms.agent.HMSAgent.init(this);**

使用与测试

  1. 调用获取token
    开发文档要求:调用connect、请务必在应用启动后的首个activity的onCreate方法中调用connect接口,确保HMS SDK和HMS APK的连接。
    因为我这边是一进去就执行获取token,因此我将连接与申请抽成一个方法然后在启动的Activity的onCreate中执行
    Android华为推送集成与测试_第7张图片
  2. 推送测试与错误码
    华为推送通道因为预先配置了SHA256指纹信息,后期测试时需要签名打包才能进行测试,所以这里可以预先更改下debug包的签名模式来方便调试,注意signingConfigs一定要在buildTypes之前,否则会出错Android华为推送集成与测试_第8张图片
    运行后输出log日志,根据返回的code来对比通用错误码判断是否成功Android华为推送集成与测试_第9张图片

过程中刚开始一直拿不到token,四处翻找之后过一会又可以了,初步怀疑中间有什么耗时配置,后期会好很多,拥有token之后就可以去后台进行测试了,推送还是很快的

获取签名包证书指纹信息 SHA256获取

keytool.exe -printcert -jarfile ....\release\app-release.apk

Android华为推送集成与测试_第10张图片

坑补充

  • 华为畅玩系列 无法拿到token
    几经周折,咨询了华为push人员,得到结论,阉割版系统(运行内存为2g的就会被阉割)的华为手机是没办法去接入这推送的,调试过程中我也发现,畅玩7的手机应用与通知管理里面是没有应用管理的,同样我没办法找到华为移动服务,下载的apk也是没办法安装成功的,所以对于这种装不了华为移动服务的华为手机,请放弃对它的继续调试吧!

你可能感兴趣的:(Android华为推送集成与测试)