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

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

好在我耗费了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

时间: 2024-09-30 06:14:16

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

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

这两天由于项目需要,研究了一下百度云推送,本来这事没什么多大工作量的,但注册百度开发者账户创建应用令我蛋疼菊紧了好一阵,这些东西做了对技术没啥提升,不做又不行,必经之路.好在我耗费了N多个毫毫秒秒后稀里哗啦的闯了过来. 在此先吐槽一下.这个云推送虽然没多少东西,但对于初次接触的人来说还是有点不利索的,所以肯定要看官方文档,只是不知是百度哪个哥们做的文档,pdf做的也太不地体贴了:英文字符里面竟然有中文空格,复制到自己的项目中发现江山一片红,娘的,这猛一看还不一定能看得出来到底是哪里出了错. fo

Android 高仿微信实时聊天 基于百度云推送

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38799363 ,本文出自:[张鸿洋的博客] 一直在仿微信界面,今天终于有幸利用百度云推送仿一仿微信聊天了~~~ 首先特别感谢:weidi1989分享的Android之基于百度云推送IM ,大家可以直接下载:省了很多事哈,本例中也使用了weidi的部分代码,凡是@author way的就是weidi1989的代码~~ 1.效果图 核心功能也就上面的两张图了~~~我拿着手机和模拟器

Android使用第三方推送(二)百度云推送

时间过得好快,转眼就是12月了.工作了之后,发现节奏停不下来,像是被上了发条,再也由不得自己.工作日如流水,周末更是转瞬即逝.其实想想也是有时间的,只不过没有很好的利用,或者花在了没有意义的事情上面.人总是有惰性的,但是持续下去就不好了. 上周开始接触第三方云推送,先后体验了极光推送,个推和百度云推送,也感受了各个平台的特性.有的部署便捷,有的功能强大,有的稳定可靠.今天简单介绍一下百度云推送的使用. 百度云推送给我的感觉就是稳定可靠,毕竟是百度出品,值得信赖.而且富媒体推送也是免费,又胜出极光

使用【百度云推送】第三方SDK实现推送功能详解

之前介绍过如何使用shareSDK实现新浪微博分享功能,今天介绍如何使用百度云推送SDK实现Android手机后台推送功能. 运行效果如下 第一步,如果使用百度的SDK,当然要先成为百度的开发者啦,这个就不详述了.成为开发者之后,我们要建立一个应用,如下图所示 第二步,创建好应用之后,我们点击开方者服务管理,进入工程管理页面,然后点击左侧云推送,进入云推送功能页面,具体如下图 进入云推送详细页面之后,我们点击推送设置,设置好我们的应用的包名,然后点击快速实例,将系统给我们产生的示例代码下载下来

App之百度云推送

下载最新的Android SDK压缩包并解压,在新建工程或已有工程中增加百度云推送功能. 我下载的是 ,里面有一个同名的文件夹,文件夹中有 导入云推送jar包和so文件: 将解压后的libs文件夹中所有文件拷贝到您的工程的libs文件夹中.如果您的工程中没有其他的.so文件,建议只拷贝armeabi文件夹.如果您的工程中还使用了其他的.so文件,只需要拷贝对应目录下的.so文件即可.如果你使用的Android开发环境是Android Stutio,在工程中“src/main”目录中新建名为jni

百度云推送初尝试

今晚(不对,具体应该说是昨晚,哈哈),给师弟师妹开了个分享会,然后打算把他们分到各个师兄那边,让师兄带着他们去学.然后,师妹跑过来问我说,我这边有什么优势,想了想,这个得怎么说啊.然后,就糊弄她说:没优势..(注孤身的节奏啊),然后师妹说她要跑去另一个师兄那边,我问她为什么,然后她跟我说:那边可以学到百度云推送(怪我当时没学,唉浪费了大好机会,哈哈) 想到就因为这么一个原因,就痛失师妹,我不服!! 然后,有了下文. 1.进入官网:http://push.baidu.com/ 2.找到文档中心:h

Amazon SNS移动推送更新——新增百度云推送和Windows平台支持

Amazon SNS(Simple Notification Service)是一种基于云平台的消息通知和推送服务.SNS提供简单的 Web 服务接口和基于浏览器的管理控制台让用户能够简易设置.运行并从云中发送消息通知和推送服务.它为开发人员提供高度可扩展.灵活并且经济高效的从应用发布消息的功能,并立即将这些消息推送给订阅者或其他应用程序. SNS主要提供两大类服务:一种是消息通知服务(Notification),其主要是通过主题/订阅的模式,用短信(SMS).邮件.HTTP/S请求.SQS队列

Android第十三期 - 百度云推送(百度后台版)

这回比较费事儿,我给学弟学妹分解一下,下面开始: 配置部分: 1.去百度云推送注册账号,配置一下,如图: 2.点击消息跳转的配置部分,如图: 3.发送消息的配置,如图: 这样就完成百度后台的发送消息的服务器的配置了. 接着是App的代码部分: 1.MyPushMessageReceiver:  package com.baidu.push.example; import java.text.SimpleDateFormat; import java.util.Date; import java.

百度云推送的简单集成

1.在百度云推送的应用管理页面,创建自己的应用,创建应用时,需要提供两个证书,开发环境的推送证书和正式环境的推送证书.证书的格式是pem格式的,需要先在apple 开发者中心配置好推送证书,安装到mac上,在钥匙串中到处保存为.p12格式的证书,再到终端执行以下命令转成pem文件,并上传到百度云推送应用管理页面. openssl pkcs12 -in MyApnsCert.p12 -out MyApnsCert.pem -nodes 注意:如果用企业证书,想导出安装包给企业内部人员使用,也是用开