这两天因为项目须要。研究了一下百度云推送,本来这事没什么多大工作量的,但注冊百度开发人员账户创建应用令我蛋疼菊紧了好一阵,这些东西做了对技术没啥提升,不做又不行,必经之路。

好在我耗费了N多个毫毫秒秒后稀里哗啦的闯了过来。

在此先吐槽一下。这个云推送尽管没多少东西,但对于初次接触的人来说还是有点不利索的,所以肯定要看官方文档。仅仅是不知是百度哪个哥们做的文档。pdf做的也太不地体贴了:英文字符里面居然有中文空格,拷贝到自己的项目中发现江山一片红,娘的。这猛一看还不一定能看得出来究竟是哪里出了错。

for instance:

what's wrong? ....

如今也许能一眼望穿bug,但当血色迷蒙的时候是相当有蛋碎的快感的。

以下開始集成。

先介绍用法以便爽一把

一:用法

1.打开管理控制台,找到自己创建的project

http://developer.baidu.com/console#app/project

2:选择云推送---通知:

注:用户范围:

全部人是向全部安装这一app的用户发送通知

广播组可依据标签向特定用户发送通知

3:手机界面:

二:集成方法:

1.清单文件的配置

①:加权限

<!-- 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" />

<!-- Push service 执行须要的权限 -->

②:注冊消息接收的receiver

<receiver android:name="com.zhuim.sgghealth.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>

<!-- 用于接收系统消息以保证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" />

</intent-filter>

</receiver>

<!-- Push服务接收client发送的各种请求 -->

<!-- 注意:RegistrationReceiver 在2.1.1及之前版本号有拼写失误,为RegistratonReceiver ,用新版本号SDK时请更改为例如以下代码 -->

<receiver

android:name="com.baidu.android.pushservice.RegistrationReceiver"

android:process=":bdservice_v1" >

<intent-filter>

<action android:name="com.baidu.android.pushservice.action.METHOD" />

<action android:name="com.baidu.android.pushservice.action.BIND_SYNC" />

</intent-filter>

<intent-filter>

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

<data android:scheme="package" />

</intent-filter>

</receiver>

<!-- Push 服务 -->

<service

android:name="com.baidu.android.pushservice.PushService"

android:exported="true"

android:process=":bdservice_v1" />

<!-- AndroidMenifest.xml添加pushservice配置 -->

2:代码文件:

①:让推送功能起作用

在自己的主Activity中增加以下代码,让推送功能開始工作:

// 以apikey的方式登录。一般放在主Activity的onCreate中

PushManager.startWork(getApplicationContext(),

PushConstants.LOGIN_TYPE_API_KEY, "bYI*********************zLi3qLk");

当中的apikey是自己project的创建时赋予的:

②:继承FrontiaApplication类

public class MyApp extends FrontiaApplication {

public List<Activity> activitiesList;

@Override

public void onCreate() {

// TODO Auto-generated method stub

activitiesList = new ArrayList<Activity>();

super.onCreate();

}

}

③:自己定义广播接收者:

public class MyPushMessageReceiver extends BroadcastReceiver {

@Override

public void onReceive(final Context context, Intent intent) {

if (intent.getAction().equals(PushConstants.ACTION_MESSAGE)) {

// 获取消息内容

String message = intent.getExtras().getString(

PushConstants.EXTRA_PUSH_MESSAGE_STRING);

} else if (intent.getAction().equals(PushConstants.ACTION_RECEIVE)) {

// 处理绑定等方法的返回数据

// PushManager.startWork()的返回值通过PushConstants.METHOD_BIND得到

final String method = intent.getStringExtra(PushConstants.EXTRA_METHOD);

// 方法返回错误码。若绑定返回错误(非0)。则应用将不能正常接收消息。

// 绑定失败的原因有多种,如网络原因。或access token过期。

// 请不要在出错时进行简单的startWork调用。这有可能导致死循环。

// 能够通过限制重试次数,或者在其它时机又一次调用来解决。

int errorCode = intent.getIntExtra(PushConstants.EXTRA_ERROR_CODE,PushConstants.ERROR_SUCCESS);

String content = "";

if (intent.getByteArrayExtra(PushConstants.EXTRA_CONTENT) != null)

content = new String(intent.getByteArrayExtra(PushConstants.EXTRA_CONTENT));

// 用户在此自己定义处理消息:TODO Something

// 通知用户点击事件处理

} else if (intent.getAction().equals(

PushConstants.ACTION_RECEIVER_NOTIFICATION_CLICK)) {

String title = intent.getStringExtra(PushConstants.EXTRA_NOTIFICATION_TITLE);

String content = intent.getStringExtra(PushConstants.EXTRA_NOTIFICATION_CONTENT);

// 用户在此自己定义处理点击事件:TODO Something

}

}

}

④:导入百度云推送所须要的jar包及so文件:

libs下导入pushservice-3.2.0.jar并add to build path

libs/armeabi下导入libbdpush_V1_0.so

转载于:https://www.cnblogs.com/liguangsunls/p/6901915.html

消息推送之百度云推送Android集成与用法相关推荐

  1. Java后端实现安卓/IOS移动端消息推送(百度云推送)

    本文主要介绍Java服务器端如何借助第三方推送平台(百度云推送)推送给移动端消息. 使用案例介绍: 根据客户的需求,需要做一个类似淘宝消息推送的功能,客户下订单.订单付款.订单商品已发货,以及客户完成 ...

  2. 消息推送之百度云推送Android集成与使用方法

    这两天由于项目需要,研究了一下百度云推送,本来这事没什么多大工作量的,但注册百度开发者账户创建应用令我蛋疼菊紧了好一阵,这些东西做了对技术没啥提升,不做又不行,必经之路.好在我耗费了N多个毫毫秒秒后稀 ...

  3. JPush极光推送 and 百度云推送

    一.极光推送 这两天在研究极光推送,极光推送是一种第三方推送,提供了比较便利的推送的方式,首先让开发者不用花人力和时间去开发后台数据返回,客户端这边只管一些配置和客户端接受消息的配置. 激光推送文档: ...

  4. java百度云推送demo_百度云推送java服务端maven安装完整demo

    /*** 推送单播通知 *@author* @Date 2017年3月2日 * @Desc*/ public classBaiduPush {publicString[] pushNotificati ...

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

    因为之前没有集成过百度云推送,接手新项目之后项目需求是接入百度云推送,没办法因为项目是海外项目所以只能硬着头皮来接入了,话不多说开始你的表演: 首先就是去百度云推送的官网去创建应用并启用: .在配置详 ...

  6. 开发笔记-Android消息推送骚操作:亚马逊-SNS对接FCM和百度云推送

    写在前面: 之前使用阿里云的服务器用阿里消息推送好好的,然后因为国外业务需要使用亚马逊服务器,阿里云推送也不能用,用亚马逊的 SNS (短信消息推送服务),SNS 可以对接多家推送平台,其中 Andr ...

  7. php验证百度云doc,百度云推送通知埋的大大的坑,成功测试REST API for PHP服务端...

    搞了一个下午,发送通知终于成功了,分享一下 比客户端好多了,客户端都没有文档的. 将PHP  SDK下载后放到网站某目录 发送消息很简单的 $channel = new BaiduPush(self: ...

  8. 百度云推送的简单集成

    1.在百度云推送的应用管理页面,创建自己的应用,创建应用时,需要提供两个证书,开发环境的推送证书和正式环境的推送证书.证书的格式是pem格式的,需要先在apple 开发者中心配置好推送证书,安装到ma ...

  9. Android百度云推送接入,附完整代码

    1.创建应用获取api_key 百度云推送:http://push.baidu.com/ SDK下载:http://push.baidu.com/sdk/push_client_sdk_for_and ...

  10. 百度云推送-服务端 C# SDK

    思路: 1.公司有项目需要做android和ios手机端推送消息的功能: 2.没有接触过这方面的知识,一头雾水,开始在网上一顿搜,网上倒是有不少解决方案,首先搜的是android的解决方案,因为ios ...

最新文章

  1. vue升级之路(三)-- vue-router的使用
  2. python中的一些算法
  3. UI设计师应该知道的汉字体种类的用途(免费素材)
  4. 面包板如何接线电源 图解_互感器、电能表接线和原理讲解
  5. buck电路_Buck电路的多角度分析
  6. Python 可轻松开发植物大战僵尸游戏(附动态演示+源码分享)
  7. vue 中 axios的post请求,415错误
  8. 史玉柱:从巨人到大闲人
  9. 解决excel转pdf出现的折行问题
  10. nlp自然语言处理_自然语言处理中的偏见nlp是一个危险但可解决的问题
  11. 遇到“该网页无法正常运作”,利用php的log查找错误
  12. 电话交换机--程控交换机
  13. 【bzoj1818】[Cqoi2010]内部白点
  14. 01.使用.svg格式图片生成app图标详细步骤和注意事项
  15. ECHAP:身份认证的安全协议
  16. check mk 监控 oracle
  17. 【天光学术】财务会计论文:家电连锁零售企业财务分析方法与注意问题(节选)
  18. TAGE-SC-L预测器 “TAGE-SC-L Branch Predictors”(2016)
  19. 计算机作品大赛微课,我校微课作品获2018年中国大学生计算机设计大赛二等奖...
  20. 全志 H6 芯片分析

热门文章

  1. android手机控制电视,类Siri语音控制技术 Android手机也能控制电视
  2. 珍藏版仅30M迷你版Microsoft Office(Win10可用)
  3. https://www.i5seo.com/
  4. 盈科律师事务所高级合伙人刘晓雪:锤子科技已举步维艰
  5. myScript调研,电子手写板使用,纯干货
  6. Unity Editor编辑器实用扩展
  7. 杰理AC632N蓝牙芯片iokey使用解析(通用MCU版)
  8. 偏执的interviewee
  9. 论fastadmin里面token加密方式
  10. 希腊语 - 希腊字母表对应的意思 - 数据挖掘必备