最近在玩Gradle的時候意外發現
GCMRegistrar Is Deprecated
我記得在我剛接觸android時...GCM才剛改版過...如今過了不到一年...他又改版了...
雖然說又改版了,不過使用方式並沒有太大的改變。只是新版的register不能在MAIN_THREAD中執行,必須使用async task去做...
附上簡單的執行片段
雖然說又改版了,不過使用方式並沒有太大的改變。只是新版的register不能在MAIN_THREAD中執行,必須使用async task去做...
附上簡單的執行片段
new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... params) { String msg; try{ GoogleCloudMessaging gcm; gcm = GoogleCloudMessaging.getInstance(getApplicationContext()); String regid = gcm.register(SENDER_ID); Log.d("Ted","id "+regid); msg = "Device registered, registration ID=" + regid; } catch (IOException ex) { msg = "Error :" + ex.getMessage(); // If there is an error, don't just keep trying to register. // Require the user to click a button again, or perform // exponential back-off. } return msg; } @Override protected void onPostExecute(String msg) { } }.execute(null, null, null);
regid 就是server訊息傳送時所需的token,根據sample code的寫法,只有在第一次執行的時候才會執行register 其他時候都是由sharepreference取得之前的regid (這代表著regid不變?這點我很懷疑)。
其他的使用方式跟以前沒太大的差別,有興趣可以參考 Hello GCM
最後附上 sample code
沒有留言:
張貼留言