3

gcmで動作するようにアプリケーションを設定しようとしていますが、Gcmのドキュメントによるとphone_registration_errorエラーが発生するたびに、このエラーは次のことを意味します。

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

しかし、なぜそれがサポートされていないのかわかりません。実際のAndroidデバイスとGoogleAPIを使用したエミュレーターでこれをテストしました。

私の主な活動:

    @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);

}

そして私のマニフェスト:

ペーストビンのマニフェスト

4

3 に答える 3

2

GCMは、Android2.2以降を実行しているデバイスでのみ機能します。また、GCMは、デバイスにGoogleアカウントがインストールされている場合にのみ機能します。<uses-permission android:name="android.permission.GET_ACCOUNTS" />これは、デバイスがgoogleアカウントを持っていることを確認できるように、Googleがマニフェストで使用することを推奨する理由でもあります。

于 2012-11-19T09:58:59.703 に答える
2

私は同じ問題を抱えていて、何日もインターネットで検索した後、グーグルグループ(https://groups.google.com/forum/#!topic/cerberus-support-forum/eJxOsYqkTxo)でこれに気づき、それを試しましたそれは私にとって完璧に機能しました。

Googleアカウントに問題があります。これを試してください:

  • [設定]->[アプリケーション]->[アプリケーションの管理]->[すべて]に移動します

また

[設定]->[アプリ]->[すべて](新しいバージョンの場合)に移動します

  • 「GooglePlayサービス」と「Googleサービスフレームワーク」の「データを消去」を選択します
  • 電話を再起動します

次に、アプリからGCMIDを確認します。

それでも機能しない場合は、電話からすべてのGoogleアカウントを削除し、電話を再起動して、アカウントを再度追加します。

それは私のために働きました(私がインターネットを検索することから得た多くの解決策を実装した後)。

それが役に立てば幸い!!

于 2015-03-03T07:04:48.080 に答える
0

マニフェストを調べましたが、GooglePlayサービスのメタデータを渡すのを忘れていました。

  1. GooglePlayサービスライブラリをプロジェクトにリンクしているかどうかを確認します

  2. これをあなたのに追加してみてください

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

それは私にとってうまく機能します。

次に、再コンパイルして再試行します。それが役に立てば幸い。

于 2016-06-30T08:59:44.297 に答える