Gcm phone_registration_error

时间:2012-10-07 19:27:07

标签: android google-cloud-messaging

我正在尝试设置一个使用gcm的应用程序,但每次收到phone_registration_error错误 根据Gcm文档,此错误表示:

Incorrect phone registration with Google. 
This phone doesn't currently support GCM.

但是我不明白为什么我不支持它,我在一个真正的Android设备和一个模拟器上用google api测试了这个

我的主要活动:

    @Override
public void onCreate(Bundle savedInstanceState) {
    checkNotNull(SENDER_ID, "SENDER_ID");

    GCMRegistrar.checkDevice(this);
    GCMRegistrar.checkManifest(this);

    final String regId = GCMRegistrar.getRegistrationId(this);
    Log.i(TAG,  "registration id =====  "+regId);
    if(regId.equals("")){
        GCMRegistrar.register(this, SENDER_ID);

    } else {
        Log.v(TAG, "Already Registred");
    }

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

}

我的清单:

Manifest on pastebin

3 个答案:

答案 0 :(得分:2)

GCM仅适用于运行Android 2.2或更高版本的设备。此外,GCM仅在为设备安装了Google帐户时才有效。这也是谷歌建议在清单中使用<uses-permission android:name="android.permission.GET_ACCOUNTS" />的原因,因此您确定该设备有一个谷歌帐户。

答案 1 :(得分:2)

我遇到了同样的问题,在互联网上搜索了很多天后,我在google群组中注意到了这一点(https://groups.google.com/forum/#!topic/cerberus-support-forum/eJxOsYqkTxo)并尝试了它,它对我来说完美无瑕。

您的Google帐户存在问题。请试试这个:

  • 转到设置 - &gt;应用程序 - &gt;管理应用程序 - &gt;所有

转到设置 - &gt; Apps-&GT;全部(在较新版本上)

  • 为“Google Play服务”和“Google服务框架”选择“清除数据”
  • 重新启动手机

然后从您的应用中检查GCM ID。

如果仍然无效,请从手机中删除所有Google帐户,然后重新启动手机并重新添加帐户。

它对我有用(在实施了我从搜索互联网获得的许多解决方案之后。)

希望它有所帮助!!

答案 2 :(得分:0)

我查看了您的清单,但您忘记了传递GooglePlay服务元数据。

  1. 验证您是否已将GooglePlay服务库链接到项目

  2. 尝试在

  3. 中添加此内容

    <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>

    它很适合我。

    然后重新编译并重试。希望能帮助到你。