设备注册 ID/设备令牌未生成
Posted
技术标签:
【中文标题】设备注册 ID/设备令牌未生成【英文标题】:Device Registration Id/Device Token is not generating 【发布时间】:2015-04-21 06:25:04 【问题描述】:我正在尝试使用 GCM(Google Cloud Messaging)进行推送通知,我已尝试使用示例应用程序,它在我的设备上运行良好,并且设备 ID/令牌正在生成并能够推送通知。
如果我尝试使用另一个设备应用程序运行相同的应用程序,但未生成设备令牌/注册 ID。
我不知道我在哪里犯了错误,需要帮助才能弄清楚。
提前致谢。
这是我的代码 sn-p
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);
【问题讨论】:
如果您分享您的代码以获取设备 ID,那就太好了。和未生成设备令牌的设备名称。 请问您可以添加您的 gcm 注册码吗? 希望上面的 sn-ps 有帮助...! 我假设您能够通过 try-catch 部分而不会引发异常。检查R.string.project_number
在您的测试设备上返回一个有效值。
【参考方案1】:
您在哪个设备上进行测试?如果它是 4.0.4 之前的版本,那么您必须使用某个 google 帐户登录。请参阅:Why google Account login is required for GCM to work for devices below 4.0.4 OS?
还要检查设备上是否安装了 google play 服务。
如果应用程序包与您注册的广播接收器中的相同,请检查 android manifest。
【讨论】:
以上是关于设备注册 ID/设备令牌未生成的主要内容,如果未能解决你的问题,请参考以下文章