Android实战——第三方服务之Bmob后端云的推送服务的集成和使用(三)

第三方服务之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的消息");





你可能感兴趣的:(android,android,Studio,bmob)