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)核心功能

 <service
        android:name="com.xiaomi.push.service.XMJobService"
        android:enabled="true"
        android:exported="false"
        android:permission="android.permission.BIND_JOB_SERVICE"
        android:process=":pushcore" />
    <service
        android:name="com.xiaomi.push.service.XMPushService"
        android:enabled="true"
        android:process=":pushcore" />
    <service
        android:name="com.xiaomi.mipush.sdk.PushMessageHandler"
        android:enabled="true"
        android:exported="true" />
    <service
        android:name="com.xiaomi.mipush.sdk.MessageHandleService"
        android:enabled="true" />
<receiver
    android: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>
<receiver
    android: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>
<receiver
    android: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-data
    android:name="XIAOMI_APPKEY"
    android:value="自己的KEY" />
<meta-data
    android: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-data
       android: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-data
      android:name="push_kit_auto_init_enabled"
      android:value="false" />

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

new Thread() {   // 创建一个新线程
    @Override
    public void run() {
        try {
            // 从agconnect-service.json文件中读取appId
            String 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会提示证书指纹验证失败。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值