Android에서 GCM에 문제가 있습니다. 내 테스트 장치 (Droid2) 중 하나에서 onRegistered()
콜백을 실행하지 못하거나 좋은 regId를 반환하지 못합니다.하지만 다른 장치 (Galaxy Nexus)에서 제대로 작동합니다.GCM Android : onRegistered()가 호출되지 않음
기본 예인 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" />
와 왜 onRegistered()
콜백이 작동하지
<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>
? 그리고 한 장치에서 작동하지만 다른 장치에서는 작동하지 않을 수 있습니다. ?? 감사. 그것은 일부 장치에서 작동하지만 다른 사람들이 다음 다음 중 하나를 수행하는 경우
감사합니다. @ Chris.Jenkins. 작동하지 않는 기기는 Android 2.3.4 (API 레벨 10)를 실행 중입니다. 유효한 고글 계정과 함께 Play 스토어가 설치되었습니다. 하지만 다른/작업중인 기기와 동일한 Google ID를 사용합니다. 그게 문제가 될 수 있습니까? – gcl1
Reg ID는 기기/앱과 관련이 없습니다. Humm, 그 수표에 FC가 아니라면. 그렇다면 매우 이상합니다. GCM이 해당 기기에서 작동하지 않는다고 가정 할 수 있습니까? 동기화가 켜져 있습니까? –
또한 GCM이 이전 기기의 일부 (Droid2)에서 부분적으로 작동하고있었습니다. 그 당시, onRegistered() 호출은 결코 반환되지 않았지만 ... GCMRegistrar.register() 호출은 응용 프로그램에서 사용할 수있는 좋은 regId를 생성했습니다. 나는 무엇이 바뀌 었는지 모르겠지만 GCMRegistrar.register()와 onRegistered() 콜백 모두 작동하지 않습니다. – gcl1