集成百度云推送,Android8.0系统推送收不到问题解决方案

因为之前没有集成过百度云推送,接手新项目之后项目需求是接入百度云推送,没办法因为项目是海外项目所以只能硬着头皮来接入了,话不多说开始你的表演:

首先就是去百度云推送的官网去创建应用并启用:

.在配置详情页中,扫描二维码或者点击下载SDK,可以下载对应包名的demo,个人建议直接点击右上角的下载SDK来下载demo,因为我刚开始使用二维码下载下来的demo并不是最新的版本,也没有百度云产品的简介。

.运行demo没问题也可以推送,感觉百度云推送还是很nice的,so那就去集成到咱们自己的项目中吧

.将自己需要的文件提取出来,尽可能的去掉无用的东西。**demo中包好了许多功能是你用不到的,因此需要将自己需要功能的相关文件摘出来。结果测试没问题。需要的东西如下:
pushservice-5.2.0.12.jar包,所有的.so文件,notification_custom_builder.xml(这是通知栏的布局),  

注意:如果您的 Android 工程使用的是 Android API level 21 及以上的版本,您的通知图标背景 必须是透明的,否则在 Android5.0 及以上的机器上通知图标可能会变成白色的方块。

  1. 在该工程下创建一个 libs 文件夹

  2. 将 pushservice-VERSION.jar 拷贝到 libs 文件夹中,把 SDK 压缩包中的 libs/armeabi 目录下的

    libbdpush_V2_9.so 拷贝到工程对应的 libs/armeabi 文件夹下。

    1. a)  如果你的工程中没有使用其他的.so,建议只复制 armeabi 文件夹。

    2. b)  如果你的工程中还使用了其他的.so 文件,只需要拷贝云推送对应目录下的.so 文件。

    3. c)  如果你使用的 Android 开发环境是 Android Stutio,在工程中“src/main”目录中新建名为

      jniLibs 的目录,将 libs 文件夹中文件拷贝到“jniLibs”目录内。

.AndroidManifest.xm中的权限:

<!-- Push service 运行需要的权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> 
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 富媒体需要声明的权限 -->
<uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/> 
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /> 
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
<!-- 适配 Android N 系统必需的 ContentProvider 写权限声明-->
<uses-permission android:name="baidu.push.permission.WRITE_PUSHINFOPROVIDER.你的包名" /> 
<permission
android:name="baidu.push.permission.WRITE_PUSHINFOPROVIDER.你的包名 " android:protectionLevel="normal">
 
 

.AndroidManifest.xml 注册消息接收 Receiver

客户端需实现自己的 MyPushMessageReceiver,接收 Push 服务的消息,并实现对消息的处理。以

下是 AndroidManifest.xml 中的配置代码。

<!-- push 应用定义消息 receiver 声明 -->
<receiver android:name="YourPackageName.MyPushMessageReceiver">
<intent-filter>
<!-- 接收 push 消息 -->
<action android:name="com.baidu.android.pushservice.action.MESSAGE" />
<!-- 接收 bind、setTags 等 method 的返回结果 -->
<action android:name="com.baidu.android.pushservice.action.RECEIVE" />
<!-- 可选,接受通知点击事件,和通知自定义内容 -->
<action android:name="com.baidu.android.pushservice.action.notification.CLICK" />
</intent-filter> 
</receiver>

7. AndroidManifest.xml 增加 pushservice 配置

<!-- push service start -->
<!-- 用于接收系统消息以保证 PushService 正常运行 -->
<receiver android:name="com.baidu.android.pushservice.PushServiceReceiver" android:process=": bdservice_v1" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="com.baidu.android.pushservice.action.notification.SHOW" /> 
<action android:name="com.baidu.android.pushservice.action.media.CLICK" />
<!-- 以下四项为可选的 action 声明,可大大提高 service 存活率和消息到达速度 --> 
<action android:name="androi
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值