百度雲推送的一些注意事項

最近項目中要用到推送,以前一直用的是xmpp,此次公司指明要用百度雲推送,覺得幾分鐘就能搞定的事,結果吃在了之前用xmpp的虧,進入了一個誤區,覺得只要啓動就ok了,但是事實卻老是報,找不到相關類,靜下心來看官方文檔,發現網站的引導作的不是很好,甚至有點亂,老是找不到想到的網頁,這裏簡單的說下流程:
api

首先註冊一個百度帳號,這裏就很少說了。而後登錄,點擊右上方的管理控制檯選擇開發者服務管理見下圖測試


會進入下面的界面
網站

點擊建立工程見下界面this

隨便輸入一個應用名稱,點擊建立會看到下面的界面spa


點擊推送設置xml

接下來輸入你的應用包名,點保存開發

如今點擊右上角的APIKey,就能夠複製你的API key了文檔

下面簡單介紹一下配置和代碼,官方文檔,和demo已經足夠了,這裏就說一下須要注意的地方get

接下來是代碼的調用
it

將這兩個文件拷貝到你的主包下,修改使其沒錯,


 if (!hasBind(getApplicationContext())) {

//           !! 請將AndroidManifest.xml 104行處 api_key 字段值修改成本身的 api_key 方可以使用 !!

//           !! ATTENTION:You need to modify the value of api_key to your own at row 104 in AndroidManifest.xml to use this Demo !!

           PushManager.startWork(getApplicationContext(),

                   PushConstants.LOGIN_TYPE_API_KEY,

                   getMetaValue(MainActivity.this, "api_key"));

           // Push: 若是想基於地理位置推送,能夠打開支持地理位置的推送的開關

           // PushManager.enableLbs(getApplicationContext());

       }

這段代碼是啓動推送的,放到oncreate方法中

下面是幾個關聯的方法

 // 用share preference來實現是否綁定的開關。在ionBind且成功時設置true,unBind且成功時設置false

    public static boolean hasBind(Context context) {

        SharedPreferences sp = PreferenceManager

                .getDefaultSharedPreferences(context);

        String flag = sp.getString("bind_flag", "");

        if ("ok".equalsIgnoreCase(flag)) {

            return true;

        }

        return false;

    }


 // 獲取ApiKey

    public static String getMetaValue(Context context, String metaKey) {

        Bundle metaData = null;

        String apiKey = null;

        if (context == null || metaKey == null) {

            return null;

        }

        try {

            ApplicationInfo ai = context.getPackageManager()

                    .getApplicationInfo(context.getPackageName(),

                            PackageManager.GET_META_DATA);

            if (null != ai) {

                metaData = ai.metaData;

            }

            if (null != metaData) {

                apiKey = metaData.getString(metaKey);

            }

        } catch (NameNotFoundException e) {


        }

        return apiKey;

    }

如今能夠測試一下了

仍是點擊點擊開發者服務管理,會看到下面界面

運行你的應用後,點擊通知,發送消息,驗證是否成功

相關文章
相關標籤/搜索