0

我正在尝试使用 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);
}
4

1 回答 1

0
  1. 您在哪个设备上进行测试?如果它是 4.0.4 之前的版本,那么您必须使用某个 google 帐户登录。请参阅参考:为什么 GCM 需要 google 帐户登录才能在 4.0.4 操作系统以下的设备上工作?

  2. 还要检查设备上是否安装了 google play 服务。

  3. 如果应用程序包与您注册的广播接收器中的相同,请检查 android manifest。

于 2015-04-22T07:58:18.147 回答