消息推送(BMOB實現)

  消息推送在Android的APP中很是經常使用。在此記錄一個可以輕鬆實現消息推送後臺的實現方法。html

  首先在BMOB註冊帳號、應用啥的就很差說了。直接開始說怎麼實現。android

  1、下載而後導入Bmob的jar包。web

  2、獲取相關權限json

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

  3、註冊相關的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>

  4、註冊一個本身的廣播接收器用來處理推送來的消息  ide

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>

5、啓動推送服務this

在你的應用程序主Activity中調用以下方法:spa

    // 使用推送服務時的初始化操做
    BmobInstallation.getCurrentInstallation(this).save();
    // 啓動推送服務
    BmobPush.startWork(this, "你的AppKey");

代碼中的"你的AppKey"就是你在Bmob後臺中建立的應用程序的AppKey,若是你不知道這是什麼,能夠參考快速入門文檔中的註冊Bmob帳號部分。.net

6、在web端進行推送設置code

在應用面板-->消息推送-->推送設置界面中填寫包名進行保存。 

7、在web端推送消息

完成以上步驟後,你能夠運行應用程序,從web推送一條消息給客戶端。 

  

  值得注意的是,這個BMOB推來的其實仍是json格式的,得本身解析嘍~

相關文章
相關標籤/搜索