android接入华为推送注意点

本文详细介绍了如何在Android应用中集成华为推送和小米推送服务,包括注册开发者账号、申请权限、配置SDK及实现推送接收器等步骤。

        由于公司产品有及时聊天功能,因此对信息达到及时性要求比较高,因此安排我处理部分android手机在app不运行情况下的信息推送。下面分别介绍华为推送和小米推送接入。
       一、华为推送
接入之前,我先研究了华为推送的demo,目前华为推送官网是HMS,这个推送里面集成了很多平台功能,而Push只是其中一个功能。如果你只是需要接入push功能,个人不建议用HMS,因为HMS对系统权限要求比较复杂,而且在平台申请到权限之后,如果要测试推送的话,还需要填apk的指纹证书,而如果用旧版本的push SDK则此处的指纹证书则不需要。所以我们暂时考虑接入华为专门针对推送服务的SDK(HWPushSDK_v2.7.05)。接入流程如下:
1. 首先上华为开发者联盟上注册认证成为开发者;
2. 申请通过后,在管理中心处,选择产品管理,创建产品,名称应该和工程中的产品名称一致。
3. 引入华为推送服务jar包(HwPush_SDK_V2705.jar)到工程;
4. 建立一个华为推送接收器(com.huawei.android.pushagent.api.PushEventReceive)子类用于接收服务器token,同时将token上传到自己的服务器。
5. 在androidmanifest.xml文件中配置华为推送服务权限等。
6. 测试在推送服务下“新建android推送”(推送服务不需要SHA256证书指纹),发送范围选择指定到具体的EMEI号(是token的第2位之后的15位数字)。
7. 如果要出发onEvent(...)回调函数,需要添加Extras键值对;
附(androidmanifest.xml华为配置):


二、小米推送
1. 首先上小米推送运营平台注册认证。
2. 创建应用,包名确定后不能修改。
3. 导入小米推送服务jar包(MiPush_SDK_Client_3_2_2.jar)到工程。
4. 建立一个小米推送接收器(com.xiaomi.mipush.sdk.PushMessageReceiver)子类用于重写服务注册的结果。
5. 在androidmanifest.xml文件中配置华为推送服务权限等。


附(androidmanifest.xml小米配置):

<!-- 小米推送服务注册 (4个后台服务)-->

<service android:name="com.xiaomi.push.service.XMJobService" android:process=":pushservice" android:permission="android.permission.BIND_JOB_SERVICE" android:exported="false" android:enabled="true"/>

<service android:name="com.xiaomi.push.service.XMPushService" android:process=":pushservice" android:enabled="true"/>

<service android:name="com.xiaomi.mipush.sdk.PushMessageHandler" android:exported="true" android:enabled="true"/>

<service android:name="com.xiaomi.mipush.sdk.MessageHandleService" android:enabled="true"/>

<!-- 小米推送服务   (3个广播)-->

    <receiver

        android:exported="true"

        android:name="com.xiaomi.push.service.receivers.NetworkStatusReceiver" >

        <intent-filter>

            <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

            <category android:name="android.intent.category.DEFAULT" />

        </intent-filter>

    </receiver>

    <receiver

        android:exported="false"

        android:process=":pushservice"

        android:name="com.xiaomi.push.service.receivers.PingReceiver" >

        <intent-filter>

            <action android:name="com.xiaomi.push.PING_TIMER" />

        </intent-filter>

    </receiver>

    //继承了PushMessageReceiverDemoMessageReceiver的广播注册

    <receiver

        android:name="com.winhong.android.zhiku.receiver.Mipush_Broadcast"

        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>

 

<!-- 小米推送服务 -->

<permission android:name="com.winhong.android.zhiku.permission.MIPUSH_RECEIVE" android:protectionLevel="signature"/>

<uses-permission android:name="com.winhong.android.zhiku.permission.MIPUSH_RECEIVE"/>


androidmanifest.xml华为配置):

    <!-- 华为推送服务  -->

        <!-- 第三方相关 :接收Push消息(注册、Push消息、Push连接状态、标签,LBS上报结果)广播 -->

        <receiver android:name="com.winhong.android.zhiku.receiver.Hwpush_Broadcast" >

            <intent-filter>

                <!-- 必须,用于接收token-->

                <action android:name="com.huawei.android.push.intent.REGISTRATION" />

                <!-- 必须,用于接收消息-->

                <action android:name="com.huawei.android.push.intent.RECEIVE" />

                <!-- 可选,用于点击通知栏或通知栏上的按钮后触发onEvent回调-->

                <action android:name="com.huawei.android.push.intent.CLICK" />

                <!-- 可选,查看push通道是否连接,不查看则不需要-->

                <action android:name="com.huawei.intent.action.PUSH_STATE" />

            </intent-filter>

        </receiver>

 

        <!-- 备注:Push相关的android组件需要添加到业务的AndroidManifest.xml,

          Push相关android组件运行在另外一个进程是为了防止Push服务异常而影响主业务 -->

          

        <!-- PushSDK:PushSDK接收外部请求事件入口 -->

        <receiver

            android:name="com.huawei.android.pushagent.PushEventReceiver"

            android:process=":pushservice" >

            <intent-filter>

                <action android:name="com.huawei.android.push.intent.REFRESH_PUSH_CHANNEL" />

                <action android:name="com.huawei.intent.action.PUSH" />

                <action android:name="com.huawei.intent.action.PUSH_ON" />

                <action android:name="com.huawei.android.push.PLUGIN" />

            </intent-filter>

            <intent-filter>

                <action android:name="android.intent.action.PACKAGE_ADDED" />

                <action android:name="android.intent.action.PACKAGE_REMOVED" />

                <data android:scheme="package" />

            </intent-filter>

        </receiver>

        <receiver

            android:name="com.huawei.android.pushagent.PushBootReceiver"

            android:process=":pushservice" >

            <intent-filter>

                <action android:name="com.huawei.android.push.intent.REGISTER" />

                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

            </intent-filter>

            <meta-data

                android:name="CS_cloud_version"

                android:value="\u0032\u0037\u0030\u0035" />

        </receiver>

        

        <!-- PushSDK:Push服务 -->

        <service

            android:name="com.huawei.android.pushagent.PushService"

            android:process=":pushservice" >

        </service>


内容概要:本文系统梳理了多个科研领域的前沿研究与技术实现,重点涵盖FDTD方法中的完美匹配层(PML)研究,以及Matlab/Simulink在电磁、电力、控制、通信、信号处理、图像处理、路径规划、能源系统优化等领域的仿真与算法实现。文中列举了大量基于Matlab和Python的科研案例,如风电功率预测、负荷预测、无人机三维路径规划、电池系统故障诊断、雷达模拟、通信编码、微电网优化调度等,并强调结合智能优化算法(如粒子群、遗传算法、深度学习等)提升系统性能。同时,提供了丰富的代码资源与仿真模型,涵盖永磁同步电机控制、逆变器设计、多智能体任务分配、虚拟电厂调度等复杂系统,助力科研人员快速开展复现实验与创新研究。; 适合人群:具备一定编程基础,熟悉Matlab/Python工具,从事电气工程、自动化、通信、人工智能、新能源、控制科学等相关领域研究的研发人员及研究生。; 使用场景及目标:① 学习并实现FDTD仿真中的PML边界条件以有效抑制数值反射;② 掌握Matlab/Simulink在多物理场建模、控制系统设计与优化算法中的综合应用;③ 借助提供的代码资源完成科研复现、课程设计、竞赛项目或工程原型开发; 阅读建议:此资源以科研实战为导向,不仅提供理论方法,更强调代码实现与仿真验证。建议读者结合自身研究方向,按目录顺序查阅相关模块,下载配套代码进行调试与二次开发,以达到学以致用、融会贯通的目的。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值