2014-05-07 20 views
10

Próbuję użyć interfejsu API GoogleCloudMessaging (GCM) do wysyłania powiadomień w mojej aplikacji na Androida.Nie można rozpoznać symbolu "GCMBroadcastReceiver" w Android Studio

Nawiązując do http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/ i http://developer.android.com/google/play-services/setup.html#Setup, starałem się je ustawić w AndroidManifest.xml ale dał mi jakiś błąd:

  • nie można rozwiązać symbol 'GCMBroadcastReceiver'
  • Nie można rozwiązać symbol 'GCMIntentService'

Ten blok jest znacznikiem zgłoszeniu

<receiver 
     android:name="com.google.android.gcm.GCMBroadcastReceiver" 
     android:permission="com.google.android.c2dm.permission.SEND" > 
     <intent-filter> 

      <!-- Receives the actual messages. --> 
      <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
      <!-- Receives the registration id. --> 
      <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 

      <category android:name="com.zaqqle.disqover" /> 
     </intent-filter> 
    </receiver> 

    <service android:name=".GCMIntentService" /> 

Używam Android Studio i co mam zrobić

  • zainstalowane w Google Play Services SDK Manager i synchronizowane z Gradle
  • zawarte compile 'com.google.android.gms:play-services:4.3.23' w build.gradle
  • zawarte <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> w AndroidManifest.xml

Czy możesz mi pomóc wskazać, gdzie tęskniłem? Dziękuję za pomoc!

Odpowiedz

19

com.google.android.gcm.GCMBroadcastReceiver to wycofana klasa, której prawdopodobnie nie masz w swoim projekcie. Powinieneś zaimplementować swój własny odbiornik. GCMIntentService to klasa, którą masz zaimplementować.

Używasz starego samouczka, który używa nieaktualnych klas zamiast korzystać z biblioteki Usług Google Play. Powinieneś zapoznać się z bieżącym numerem official GCM demo app, aby zobaczyć, jak powinien wyglądać twój manifest i które klasy powinny być w projekcie.

+0

Dziękuję bardzo. Twój link do oficjalnej wersji demo uratował mi życie! – Boy

+0

Pracowałem dla mnie, dzięki! –

+1

Świetnie, pracował również dla mnie. Przez jakiś czas googlowałem i wreszcie zobaczyłem, że twoja "GCMIntentService jest klasą, którą powinieneś zaimplementować" –

Powiązane problemy