我正在尝试设置一个使用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);
}
我的清单:
答案 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; Apps-&GT;全部(在较新版本上)
然后从您的应用中检查GCM ID。
如果仍然无效,请从手机中删除所有Google帐户,然后重新启动手机并重新添加帐户。
它对我有用(在实施了我从搜索互联网获得的许多解决方案之后。)
希望它有所帮助!!
答案 2 :(得分:0)
我查看了您的清单,但您忘记了传递GooglePlay服务元数据。
验证您是否已将GooglePlay服务库链接到项目
尝试在
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
它很适合我。
然后重新编译并重试。希望能帮助到你。