android云新消息接收者全局,消息推送之百度云推送Android集成与用法(示例代码)...

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

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

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

for instance:

dc6f313c3db74767c824df9e5c791692.png

show-5849.htmlwhat‘s wrong? ....

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

以下開始集成。

先介绍用法以便爽一把

一:用法

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

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

fd9ea9ba2a3ce24e47cac2bae19fda8d.png

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

efb66747022088ec408ee145bcfc5e47.png

注:用户范围:

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

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

5df48b3954b8626126a293432da30a6f.png

3:手机界面:

8edea60703576bdfabdde8b8cef8096a.png

二:集成方法:

1.清单文件的配置

①:加权限

②:注冊消息接收的receiver

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

android:process=":bdservice_v1" >

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

android:process=":bdservice_v1" >

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

android:exported="true"

android:process=":bdservice_v1" />

2:代码文件:

①:让推送功能起作用

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

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

PushManager.startWork(getApplicationContext(),

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

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

bad87b76b723a806c7b11f4342bdf3ea.png

②:继承FrontiaApplication类

public class MyApp extends FrontiaApplication {

public List activitiesList;

@Override

public void onCreate() {

//TODOAuto-generated method stub

activitiesList = new ArrayList();

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));

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

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

} 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);

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

}

}

}

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

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

libs/armeabi下导入libbdpush_V1_0.so

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值