您的位置:首页 > 移动开发 > Android开发

Android 之百度推送

2016-02-24 21:38 483 查看
以前没用过推送,项目需要,花时间研究了下百度推送

记录下,仅是推送入门

1.首先去百度开放云 http://developer.baidu.com/




选择云推送





然后选择开发指南





根据步骤,下载示例代码,推送设置好,到Eclipse上运行,指南上讲的很详细了,不赘述。

整个流程走完之后按照指南上的步骤就可以收到测试的推送消息。

流程到这一步,推送示例是基本走完了,那么怎么用到项目中呢?

总结了以下几点,即可完成基本的推送

1.首先在我们的工程中新建一个推送包,专门用于百度推送,把libs文件夹中的推送库与示例代码中的三个类拷进来,只要这三个类即可,见下图









MyPushMessageReceiver类是我们要接收用于接收系统消息的广播接收者以保证PushService(我们的应用后台服务用于接收推送,下面讲解)正常运行

PushApplication是全局Application类

Utils类是工具类包括绑定标识在SharedPreference中的记录

2.第一部走完,下面继续配置

在AndroidManifast.xml文件中设置Application为PushApplication,如果有自己定义的Application类,那么让自己定义的类继承自PushApplication类





3.设置权限

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-permission android:name="android.permission.READ_PHONE_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.ACCESS_DOWNLOAD_MANAGER"/>

<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"/>

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


4.在AndroidManifast.xml文件中添加三个Receiver与一个Service

这三个Receiver一个是我们刚刚拷过来的MyPushMessageReceiver声明,另外两个Receiver与Service是推送库里面的接收者与服务,代码直接拷过来即可

</pre>

<!-- push应用定义消息receiver声明 -->

<receiver android:name="com.baidu.push.MyPushMessageReceiver">

<intent-filter>

<!-- 接收push消息 -->

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

<!-- 接收bind,unbind,fetch,delete等反馈消息 -->

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

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

</intent-filter>

</receiver>

<!-- push必须的receviver和service声明 -->

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

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

<service

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

android:exported="true"

android:process=":bdservice_v1">

<intent-filter>

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

</intent-filter>

</service>

<!-- push结束 -->

<pre>


5.准备工作完成后,重要的一步就是绑定,在示例代码中我们点击“无账号绑定”或“百度帐号绑定”才能接收到推送消息,在我们的工程中同样需要绑定,我们在PushApplication的Oncrea()

方法中加上下面的代码完成绑定操作

SharedPreferences sp = PreferenceManager

.getDefaultSharedPreferences(getApplicationContext());

String bind_flag=sp.getString("bind_flag","not");

if(bind_flag.equals("not"))

{

PushManager.startWork(getApplicationContext(),

PushConstants.LOGIN_TYPE_API_KEY,

"EOc7BaT2VWgtbbOQolPYHGjf");

}


其中“bind_flag”从Utils中可得到这个SharedPreference名称,存储了绑定的标识,上面的代码表示当没有绑定的时候执行绑定代码

“EOc7BaT2VWgtbbOQolPYHGjf”为你的apikey,在控制台创建工程的时候生成的。

这样就算完成了,到百度开放云推送页面发送推送消息试试把!

本文永久地址:http://blog.it985.com/2616.html

本文出自 IT985博客 ,转载时请注明出处及相应链接。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: