第三方服务之Bmob后端云的推送服务的集成和使用(三)
事先说明:这里的一切操作都是在集成了BmobSDK之后实现的,如果对Bmob还不了解的话,请关注我第一篇Bmob文章
步骤一:推送服务的集成
在app的build.gradle中添加compile依赖文件:
compile 'cn.bmob.android:bmob-push:0.8'在manifests文件中 配置权限 :
<!-- 推送所需的权限 --> <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />在manifests文件中添加需要的配置:
<!-- BmobPush start --> <service android:name="cn.bmob.push.lib.service.PushService" android:exported="true" android:label="PushService" android:permission="cn.bmob.permission.push" android:process="cn.bmob.push"> <intent-filter> <action android:name="cn.bmob.push.lib.service.PushService" /> </intent-filter> </service> <receiver android:name="cn.bmob.push.PushReceiver"> <intent-filter android:priority="2147483647"> <!-- 优先级加最高 --> <!-- 系统启动完成后会调用 --> <action android:name="android.intent.action.BOOT_COMPLETED" /> <!-- 解锁完成后会调用 --> <action android:name="android.intent.action.USER_PRESENT" /> <!-- 监听网络连通性 --> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver> <receiver android:name=".Receiver.MyPushMessageReceiver"> <intent-filter> <action android:name="cn.bmob.push.action.MESSAGE" /> </intent-filter> </receiver> <!-- BmobPush end -->创建一个 Receiver 接受推送消息:
public class MyPushMessageReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub if(intent.getAction().equals(PushConstants.ACTION_MESSAGE)){ Log.d("bmob", "客户端收到推送内容:"+intent.getStringExtra("msg")); } } }在Activity的onCreate方法中 初始化 BmobPush:
//使用推送服务时的初始化操作 BmobInstallation.getCurrentInstallation(this).save(); //启动推送服务 BmobPush.startWork(this);在Bmob后台管理中设置:
步骤二:推送服务的使用
可以在Bmob后台管理中直接发送推送:
也可以在代码中发送推送:(三种方式)
// 创建推送消息的对象 bmobPushManager = new BmobPushManager(this);
// 推送一条消息给所有安装此应用的设备 bmobPushManager.pushMessageAll("这是给所有设备推送的一条消息。");
// 创建Installation表的BmobQuery对象 BmobQuery<BmobInstallation> query = BmobInstallation.getQuery(); // 并添加条件为设备类型属于android query.addWhereEqualTo("deviceType", "android"); // 设置推送条件给bmobPushManager对象。 bmobPushManager.setQuery(query); // 设置推送消息,服务端会根据上面的查询条件,来进行推送这条消息 bmobPushManager.pushMessage("这是一条推送给所有Android设备的消息。");
// 创建推送消息的对象 if (bmobPushManager == null) { bmobPushManager = new BmobPushManager(context); } // 创建Installation表的BmobQuery对象 BmobQuery<BmobInstallation> query = BmobInstallation.getQuery(); // 添加条件推送给指定的installationId query.addWhereEqualTo("installationId", installationId); // 设置推送条件给bmobPushManager对象。 bmobPushManager.setQuery(query); // 设置推送消息,服务端会根据上面的查询条件,来进行推送这条消息 bmobPushManager.pushMessage("这是一条推送给指定installationId的消息");