我正在尝试使用 GCM(Google Cloud Messaging)进行推送通知,我已经尝试使用示例应用程序,它在我的设备上运行良好,并且设备 ID/令牌正在生成并能够推送通知。
如果我尝试使用另一个设备应用程序运行相同的应用程序,但未生成设备令牌/注册 ID。
我不知道我在哪里犯了错误,需要帮助才能弄清楚。
提前致谢。
这是我的代码片段
public void onCreate(){
super.onCreate();
final String preferences = getString(R.string.preferences);
savedValues = getSharedPreferences(preferences, Context.MODE_PRIVATE);
// In later versions multi_process is no longer the default
if(VERSION.SDK_INT > 9){
savedValues = getSharedPreferences(preferences, Context.MODE_MULTI_PROCESS);
}
gcm = GoogleCloudMessaging.getInstance(getBaseContext());
SharedPreferences savedValues = PreferenceManager.getDefaultSharedPreferences(this);
if(savedValues.getBoolean(getString(R.string.first_launch), true)){
register();
SharedPreferences.Editor editor = savedValues.edit();
editor.putBoolean(getString(R.string.first_launch), false);
editor.commit();
}
// Let AndroidMobilePushApp know we have just initialized and there may be stored messages
sendToApp(new Bundle(), this);
}
然后是我的注册方法,
private void register() {
new AsyncTask<Object, Object, Object>(){
protected Object doInBackground(final Object... params) {
String token;
try {
token = gcm.register(getString(R.string.project_number));
Log.i("registrationId", token);
}
catch (IOException e) {
Log.i("Registration Error", e.getMessage());
}
return true;
}
}.execute(null, null, null);
}