以前没用过推送,项目需要,花时间研究了下百度推送
记录下,仅是推送入门
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博客 ,转载时请注明出处及相应链接。