web-dev-qa-db-ja.com

GCM defaultSenderID

誰かが次のコードのgcm_defaultSenderIdが何であるかを理解するのを手伝ってもらえますか(RegistrationIntentService.JavaのonHandleIntentにあります):

InstanceID instanceID = InstanceID.getInstance(this);
            String token = instanceID.getToken(getString(R.string.gcm_defaultSenderId),
                    GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
            // [END get_token]
            Log.i(TAG, "GCM Registration Token: " + token);

これは、GCMをアプリに実装するためのGoogleサンプルアプリのものであり、アプリ内でコンパイルすることさえしません!それは各アプリに固有の何かだと思います。私はすでにアプリケーションにGCM APIを追加していますが、この文字列が何であるかわからないだけです!ありがとう!

26
Brandon

[〜#〜] this [〜#〜] を引用すると、その実装に関する詳細を見つけることができます:

_String authorizedEntity = PROJECT_ID; // Project id from Google Developers Console
String scope = “GCM”; // e.g. communicating using GCM, but you can use any
                      // URL-safe characters up to a maximum of 1000, or
                      // you can also leave it blank.
String token = InstanceID.getInstance().getToken(authorizedEntity,scope);
_

ご覧のとおり、getToken()に渡す最初のパラメーターはauthorizedEntityで、これはGoogle DevelopersからのプロジェクトIDです:)

GitHubのプロジェクトにその文字列が含まれていたとしても、このauthorizedEntityはアプリごとに一意であるため、役に立たないでしょう。

8
Vesko

Gcm_defaultSenderIdは、google-services gradleプラグインに含まれる文字列です。あなたが持っていることを確認してください:

  apply plugin: 'com.google.gms.google-services'

build.gradleファイル内。

このプラグインは、ビルドツールの最新バージョンで使用できる必要があります。

Veskoが言ったように、これはあなたのSender IDであり、この場合は開発コンソールプロジェクトのプロジェクト番号です。 google-servicesプラグインは、ダウンロードしたプロジェクト構成ファイルからこれを抽出します。

28
Arthur Thompson

私はこれらのバグのあるGradleプラグインが嫌いです。また、複数のフレーバーを持つプロジェクトでgoogle-servicesプラグインを操作しようとするのも楽しいことではありません。

私は名前で送信者IDを取得することになりました:

InstanceID instanceID = InstanceID.getInstance(this);
String gcmDefaultSenderId = getString( getResources().getIdentifier("gcm_defaultSenderId", "string", this.getPackageName()) );
String token = instanceID.getToken( gcmDefaultSenderId, GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
6
Vaiden

これを解決するには、apply plugin: 'com.google.gms.google-services'をgradle.appモジュールに追加し、classpath 'com.google.gms:google-services:1.3.0'をgradle.appプロジェクトの依存関係に追加するだけです。

そしてもちろん、compile 'com.google.Android.gms:play-services-gcm:8.1.0'をgradleに追加することを忘れないでください

1

もう1つ重要なことは、google-services.jsonファイルを作成することです。

他の誰かがこの問題に出くわした場合に備えて。

1
Lisandro