最近在玩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

沒有留言:
張貼留言