消息推送在Android的APP中非常常用。在此记录一个能够轻松实现消息推送后台的实现方法。
首先在BMOB注册账号、应用啥的就不好说了。直接开始说怎么实现。
一、下载然后导入Bmob的jar包。
二、获取相关权限
<permission android:protectionLevel="normal" android:name="cn.bmob.permission.push"></permission> <uses-permission android:name="cn.bmob.permission.push"/><!-- 添加自定义的权限--> <uses-permission android:name="android.permission.READ_LOGS" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
三、注册相关的Service和Broadcast
<service android:label="PushService" android:name="cn.bmob.push.lib.service.PushService" android:process="cn.bmob.push" android:permission="cn.bmob.permission.push" android:exported="true"> <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>
四、注册一个自己的广播接收器用来处理推送来的消息
public class MyPushReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if(intent.getAction().equals(PushConstants.ACTION_MESSAGE)){ Toast.makeText(context,intent.getStringExtra(PushConstants.EXTRA_PUSH_MESSAGE_STRING),Toast.LENGTH_SHORT).show(); } } }
<receiver android:name=".Receiver.MyPushReceiver"> <intent-filter> <action android:name="cn.bmob.push.action.MESSAGE"/> </intent-filter> </receiver>
五、启动推送服务
在你的应用程序主Activity中调用如下方法:
// 使用推送服务时的初始化操作 BmobInstallation.getCurrentInstallation(this).save(); // 启动推送服务 BmobPush.startWork(this, "你的AppKey");
代码中的"你的AppKey"就是你在Bmob后台中创建的应用程序的AppKey,如果你不知道这是什么,可以参考快速入门文档中的注册Bmob账号部分。
六、在web端进行推送设置
在应用面板-->消息推送-->推送设置界面中填写包名进行保存。
七、在web端推送消息
完成以上步骤后,你可以运行应用程序,从web推送一条消息给客户端。
值得注意的是,这个BMOB推来的其实还是json格式的,得自己解析喽~