android個推推送平台的使用


之前寫推送功能都在使用百度雲推送的系統,然后,突然發現百度雲推送在教育網情況下的服務不是很穩定,因此決定采用個推開放平台

 

個推的官網http://dev.igetui.com/,在這上面注冊賬號很簡單,注冊之后,登記新應用,然后有兩種方式,一種可以下載SDK自己接入,

還有一種可以選擇下載官方網站的示例Demo進行自己的修改,個推的SDK配置其實還是很簡單的,官網的文檔講的也很詳細下載的SDK包里面有比較詳細的接口和文檔

 

但是,在這里我說一下我在使用之中遇到的幾個問題,

首先  注冊推送服務的代碼是

 

    1 MessageManager.getInstance().initialize(this.getApplicationContext()); 

 

在這里,成功注冊服務之后,會收到一個clientid 這個clientid對應的是設備,在同一個設備上同一個應用不論啟動多少次都會拿到同一個值

必須要等到拿到clientid之后才會開始推送服務,平均注冊成功的時間依據你的當前的網絡狀況來確定,一般情況下應該在10-15秒

 

另外,在這里,使用服務器推送消息智能推送透傳消息,在官網的首頁看到的通知消息是不能使用服務器推送的,透傳消息需要注冊一個BroadcastReceiver

在文檔中和官方的Demo中都有說明就不詳細介紹了這個東西

 

在這個里面,這個是取得透傳數據的代碼部分,同時因為要通知主線程更新UI線程,所以我使用了BroadcastReceiver來確保能使消息更新主線程

 

case Consts.GET_MSG_DATA:
            // 獲取透傳數據
            // String appid = bundle.getString("appid");
            byte[] payload = bundle.getByteArray("payload");

            if (payload != null) {
                String data = new String(payload);
                                System.out.println("the item is " + data);
                Log.d("GexinSdkDemo", "Got Payload:" + data);
                Intent intent1 = new Intent();
                intent1.setAction("com.message");
                context.sendBroadcast(intent1);
            }                

 

同時clientid也是在這里面拿到的

1     case Consts.GET_CLIENTID:
2             // 獲取ClientID(CID)
3             // 第三方應用需要將CID上傳到第三方服務器,並且將當前用戶帳號和CID進行關聯,以便日后通過用戶帳號查找CID進行消息推送
4             String cid = bundle.getString("clientid");
5 
6             System.out.println("the client id is" + cid);
7             break;

 

同時,在個推中還有許多功能其他的功能可以拓展,我正在研究中,以后可能還會有其他的更新

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM