2016-04-01 8 views
0

私はAndroidアプリケーションの開発に初心者で、誰かが問題を見つけ出すのを助けることができるのだろうかと思っていました。GCM:AndroidウィジェットWidgetIDに基づいてトークンを生成

は、私は次の形式 [テキストビュー]であるウィジェットを作成しています[+] [ - ]

Viewが押して+ボタンを押すことによって増減される番号を表示するテキスト - ボタン。

プラスボタンとマイナスボタンは、テキストビューに表示されるカウント値を返信する私のサーバとやりとりします。

このウィジェットは複数のアンドロイド携帯電話にインストールでき、常に最新のものになるはずです。

これを達成するために、登録済みのすべてのウィジェットにカウント値のプッシュ通知を送信するためにGoogle Cloudメッセージを統合しました。

ウィジェットが別の携帯電話にインストールされていると、すべてうまく動作しています。

ただし、同じ電話機に2つのウィジェットをインストールすると、Googleから受け取ったトークンは同じです。関連するコードは、それがGoogleドキュメントによると起こって、なぜ私が理解

try { 
     tokenPerWidgetId.put(appWidgetId, instanceId.getToken(getString(R.string.gcm_defaultSenderId), 
      GoogleCloudMessaging.INSTANCE_ID_SCOPE, null)); 
     Log.v("RegisterationToken", registerToken); 
     } catch (IOException ie) { 
     Log.v("RegisterationToken", "Failed"); 
     setViewsOnError(views, " Could not register with Google. Please re-install"); 
       } 

を添付、入手トークン初めてサーバーからトークンを取得し、他の回は、トークンを返します。

ただし、AppWidgetIdに基づいてトークンを生成するにはどうすればよいですか?

答えて

0

私はウィジェットの作成を試していませんが、GCMを使用すると、ウィジェットごとに2つの登録トークンが必要になります。ウィジェットが作成されたときにinstanceId.getTokenに電話をかけて別々に保管することができれば、動作するように見えます。

+0

こんにちは、ありがとうございました。しかし、私はインスタンスIDとトークンと混同しています。 GoogleがインスタンスIDを処理するように見え、ウィジェットが同じモバイルにインストールされているときに同じトークンを取得しています。私にそれをチェックさせてください。 –

+0

インスタンスIDをテストして印刷しました。同じモバイルで、このAPIを呼び出すと、InstanceID instanceId = InstanceID.getInstance(this);私には同じインスタンスIDを与え、したがって同じトークンを与えます –

関連する問題