集成Bmob推送
Write By lz: 转发请注明原文地址: http://www.cnblogs.com/lizhilin2016/p/6952217.html
Lz 寄语: Bmob 奇葩推送, 大坑, 想要推送必须先集成BmobSDK
官方文档: https://www.bmob.cn/downloads
Step 1: 下载sdk 文件
下载PushSDK 解压得到jar包放在lib 文件夹下, 查看文档, 按照文档指示写.
Step 2: 配置Manifest文件
2.1 添加权限
<!--BmobSDK所需的权限 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!--推送所需的权限--> <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 坑1 : 需要额外添加权限 <uses-permission android:name="android.permission.GET_TASKS" /> |
2.2 注册BmobPush SDK 运行所需推送服务和消息接收器
<service android:label="PushService" android:name="cn.bmob.push.lib.service.PushService" android:process=":bmobpush" android:exported="true"> <intent-filter> <action android:name="cn.bmob.push.lib.service.PushService"/> </intent-filter> </service> <!-- 用于进程保活 --> <service android:name="cn.bmob.push.lib.service.PushNotifyService" android:process=":bmobpush" > </service> <receiver android:name="cn.bmob.push.PushReceiver" > <intent-filter> <!-- 系统启动完成后会调用 --> <action android:name="android.intent.action.BOOT_COMPLETED" /> <!-- 解锁完成后会调用 --> <action android:name="android.intent.action.USER_PRESENT" /> <!-- 监听网络连通性 --> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver> <!-- 第四部中创建的消息接收器,在这里进行注册, 自定义接收器 --> <receiver android:name="your.package.MyPushMessageReceiver"> <intent-filter > <action android:name="cn.bmob.push.action.MESSAGE"/> </intent-filter> </receiver> <!-- 接收心跳和唤醒的广播,要和PushService运行在同个进程 --> <receiver android:name="cn.bmob.push.PushNotifyReceiver" android:process=":bmobpush" > <intent-filter> <!-- 接收心跳广播的action --> <action android:name="cn.bmob.push.action.HEARTBEAT" /> <!-- 接收唤醒广播的action --> <action android:name="cn.bmob.push.action.NOTIFY" /> </intent-filter> </receiver> |
Step 3: 配置代码
3.1 消息接收器
public class MyPushMessageReceiver extends BroadcastReceiver { @Override // 结果是一个Json结构 public void onReceive(Context context, Intent intent) { if(intent.getAction().equals(PushConstants.ACTION_MESSAGE)){ Log.d("bmob", "客户端收到推送内容:"+intent.getStringExtra("msg")); } } } |
3.2 启动推送服务(建议在Application 中初始化)
// 初始化BmobSDK Bmob.initialize(this, "你的AppKeyID"); // 使用推送服务时的初始化操作BmobInstallation.getCurrentInstallation().save() ;// 启动推送服务 BmobPush.startWork(this); |
坑2 : PushSDK 并没有Bmob类, 无法完成初始化, 必须导入BmobSDK
此处不能直接用gradle 导入, 而是必须使用lib 导包, 否则报多包异常Gson 和OKhttp3
解决思路: 返回首页, 下载数据服务Android版本的sdk, 查看所有jar包和so文件如下
拷贝除gson/okhttp/okio外所有jar, 拷贝到lib 文件夹下面, 并添加依赖jar包
新建jniLibs 目录在main文件夹下, 拷贝所有so文件
(快速集成: http://docs.bmob.cn/data/Android/a_faststart/doc/index.html#SDK导入 )
查看官方文档, BmobSDK快速集成, 需要在项目build 文件中添加仓库地址
maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" } |
// Bmob 的仓库地址 -- 必填
并在项目module的build文件夹 android下添加apache使用说明
**兼容Android6.0系统所需,如果这句话报错,可在dependencies标签下使用 compile 'cn.bmob.android:http-legacy:1.0'** useLibrary 'org.apache.http.legacy' |
并参照demo, 在同级目录下面添加 添加删除META_INF 信息:
packagingOptions { |
--------完成配置, 开始推送
Write by lz
2017-06-06
集成Bmob推送的更多相关文章
- 1、Android Studio集成极光推送(Jpush) 报错 java.lang.UnsatisfiedLinkError: cn.jpush.android.service.PushProtoco
Android studio 集成极光推送(Jpush) (华为手机)报错, E/JPush: [JPushGlobal] Get sdk version fail![获取sdk版本失败!] W/Sy ...
- Swift3集成极光推送
现在很多程序都开始使用Swift开发了,但是第三方库大多数都是用OC写的,所以我们要使用Swift和OC混编.今天的内容主要讲Swift3.0集成极光推送. 1.准备工作 集成指南,极光上说的 ...
- C#—ASP.NET:集成极光推送(Push API v3)
C#—ASP.NET:集成极光推送(Push API v3) 原文地址: https://blog.csdn.net/CXLLLK/article/details/86489994 1.极光推送官 ...
- 李洪强iOS之集成极光推送三iOS集成指南
李洪强iOS之集成极光推送三iOS集成指南 SDK说明 适用版本 本文匹配的 SDK版本:r2.1.5 以后.查看最近更新了解最新的SDK更新情况.使用Xcode 6及以上版本可以使用新版Push S ...
- 李洪强iOS之集成极光推送二iOS 证书 设置指南
李洪强iOS之集成极光推送二iOS 证书 设置指南 创建应用程序ID 登陆 iOS Dev Center 选择进入iOS Provisioning Portal. 在 iOS Provisioning ...
- 李洪强iOS之集成极光推送一iOS SDK概述
李洪强iOS之集成极光推送一iOS SDK概述 JPush iOS 从上图可以看出,JPush iOS Push 包括 2 个部分,APNs 推送(代理),与 JPush 应用内消息. 红色部分是 A ...
- ThinkPHP 3.2.x 集成极光推送指北
3.2版本已经过了维护生命周期,官方已经不再维护,请及时更新至5.0版本 -- ThinkPHP 官方仓库 以上,如果有条件,请关闭这个页面,然后升级至 ThinkPHP 5,如果由于各种各样的原因无 ...
- QtAndroid具体解释(6):集成信鸽推送
推送是我们开发移动应用经经常使用到的功能,Qt on Android 应用也会用到,之前也有朋友问过,这次我们来看看怎么在 Qt on Android 应用中来集成来自腾讯的信鸽推送. 有关信鸽的 S ...
- ionic2集成极光推送
ionic2集成极光推送: ionic2api:https://ionicframework.com/docs/ 极光推送官网:https://www.jiguang.cn android-怎么注册极 ...
随机推荐
- 数据结构实验病毒感染检测问题(C++)
医学研究者最近发现了某些新病毒,通过对这些病毒的分析,得知他们的DNA序列都是环状的.现在研究者已收集了大量的病毒DNA和人的DNA数据,想快速检测出这些人是否感染了相应的病毒.为了方便研究,研究者将 ...
- Centos 修改主机名称
Centos 配置主机名称: 1.首先查询一下当前的主机名称 [root@localhost~]# hostnamectl status Static hostname: ****** //永久主机名 ...
- 优化 RequireJS 项目(合并与压缩) 【已翻译100%】
英文原文:Optimize (Concatenate and Minify) RequireJS Projects 标签: RequireJS Node.js 参与翻译 (1人) : 裴宝亮 本文将演 ...
- 【codeforces 793C】Mice problem
[题目链接]:http://codeforces.com/contest/793/problem/C [题意] 给你每个点x轴移动速度,y轴移动速度; 问你有没有某个时刻,所有的点都"严格& ...
- Spring Cloud-hystrix Dashboard(八)
单机模式 1.创建一个dashboard项目 2.引入依赖 <!--histrix依赖--> <dependency> <groupId>org.springfra ...
- git 强制pull
git fetch --all git reset --hard origin/master git pull
- django orm多条件查询及except处理不存在记录的样码
日常所用的功能, 记录下来加深记忆. try: sv_set = Sv.objects.get(project=site_name, version=deploy_version) print sv_ ...
- ReentrantLock公平锁与非公平锁lock()方法去竞争锁的不同点
- windowsclient开发--为你clientsign一个签名证书
郑重声明:该方法自娱自乐,尽管写入了签名,可是在微软系统免签证书不是合格的. 什么是签名? 话不多说,上图(没图说个xx): 微信windowsclient.exe安装文件: 再看还有一个.exe文件 ...
- sendfile学习
参考 https://zhuanlan.zhihu.com/p/20768200?refer=auxten 而成本很多时候的体现就是对计算资源的消耗,其中最重要的一个资源就是CPU资源. Sendfi ...