Android の GCM に問題があります。私のテストデバイス(Droid2)の1つでコールバックの実行に失敗するonRegistered()
か、適切なregIdを返すことはありませんが、別のデバイス(Galaxy Nexus)では完全に機能します。
基本的な例hereに従っています。呼び出し元は次のようになります。
GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
final String regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals(""))
GCMRegistrar.register(this, Constants.SENDER_ID);
else
Log.v(TAG, "Already registered");
そして私のマニフェストはこれを持っています:
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
と
<receiver
android:name="com.google.android.gcm.GCMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.gcl.myapp" />
</intent-filter>
</receiver>
onRegistered()
コールバックが機能しないのはなぜですか? そして、あるデバイスでは動作するが、別のデバイスでは失敗する原因は何ですか?? ありがとう。