it-swarm.com.de

Symbol "GoogleCloudMessaging" GCM kann nicht aufgelöst werden

Ich versuche, GCM in meiner App zum Laufen zu bringen (um Benutzer zu benachrichtigen, wenn sich unsere Öffnungszeiten ändern oder wenn Werbung läuft), aber ich erhalte weiterhin den Fehler Cannot resolve symbol 'GoogleCloudMessaging' beim Versuch, die Google Cloud Messaging-API zu verwenden.

Ich benutze das neu veröffentlichte Android studio IDE) um dies zu codieren.

Hier ist mein GcmBroadcastReciever.Java-Code:

import Android.R;
import Android.app.Activity;
import Android.app.NotificationManager;
import Android.app.PendingIntent;
import Android.content.BroadcastReceiver;
import Android.content.Context;
import Android.content.Intent;
import Android.widget.Toast;

public class GcmBroadcastReceiver extends BroadcastReceiver 
{
    static final String TAG = "GCMDemo";
    public static final int NOTIFICATION_ID = 1;
    private NotificationManager mNotificationManager;
    Context ctx;
    GoogleCloudMessaging gcm; // I get the error here

    @Override
    public void onReceive(Context context, Intent intent) {
        GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(context); //error
        ctx = context;
        String messageType = gcm.getMessageType(intent); //cannot resolve method here
        if (GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR.equals(messageType)) { //error
            sendNotification("Send error: " + intent.getExtras().toString());
        } else if (GoogleCloudMessaging.MESSAGE_TYPE_DELETED.equals(messageType)) { //error
            sendNotification("Deleted messages on server: " +
                    intent.getExtras().toString());
        } else {
            sendNotification("Received: " + intent.getExtras().toString());
        }
        setResultCode(Activity.RESULT_OK);
    }

    // Put the GCM message into a notification and post it.
    private void sendNotification(String msg) {
        mNotificationManager = (NotificationManager)
                ctx.getSystemService(Context.NOTIFICATION_SERVICE);

        PendingIntent contentIntent = PendingIntent.getActivity(ctx, 0,
                new Intent(ctx, Activity.class), 0);

        Toast.makeText(ctx, msg, Toast.LENGTH_SHORT).show();
    }
}
30
DillonRegi

Die folgenden Abschnitte führen Sie durch die Einrichtung einer GCM-Implementierung. Stellen Sie sicher, dass Sie das Google Play Services SDK eingerichtet haben, bevor Sie beginnen. Sie benötigen dieses SDK, um die GoogleCloudMessaging-Methoden zu verwenden . Genau genommen ist das einzige, wofür Sie diese API unbedingt benötigen, das Upstream-Messaging (Device-to-Cloud). Es wird jedoch auch eine optimierte Registrierungs-API empfohlen.

Haben Sie das Google Play Services SDK eingerichtet ?

Sie müssen :

  1. Installieren Sie das SDK für Google Play-Dienste
  2. Verweisen Sie auf die <Android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ Bibliotheksprojekt in Ihrem Android Projekt.

So installieren Sie das SDK für Google Play-Dienste für die Entwicklung:

 1. Launch the SDK Manager.
     - From Eclipse (with ADT), select Window > Android SDK Manager.
     - On Windows, double-click the SDK Manager.exe file at the root of the Android
       SDK directory.
     - On Mac or Linux, open a terminal and navigate to the tools/ directory in 
       the Android SDK, then execute Android sdk.
 2. Install the Google Play services SDK.
    Scroll to the bottom of the package list, expand Extras, select Google Play 
    services, and install it. 
    The Google Play services SDK is saved in your Android SDK environment at
    <Android-sdk>/extras/google/google_play_services/.
 3. Install a compatible version of the Google APIs platform. 
    If you want to test your app on the emulator, expand the directory for
    Android 4.2.2 (API 17) or a higher version, select Google APIs, and
    install it. Then create a new AVD with Google APIs as the platform target. 
    Note: Only Android 4.2.2 and higher versions of the Google APIs platform
    include Google Play services.
35
Eran

Wenn Sie Android Studio verwenden:

1) Das Google Play SDK heruntergeladen (mithilfe des SDK-Managers):

SDK Manager

2) Vergessen Sie nicht, auf die Schaltfläche "Projekt mit Gradle-Dateien synchronisieren" zu klicken

Synch Project with Gradle Files

Das hat den Trick für mich getan.

10
unify

Wenn Sie sich in Android Studio befinden, stellen Sie sicher, dass in Ihrem build.gradle du hast:

dependencies {
    compile 'com.google.Android.gms:play-services:7.8.0'
}

und dann build ausführen.

Das hat bei mir geklappt.

6
hlopezvg

Stellen Sie sicher, dass Sie Abhängigkeiten zu build.gradle> Sync> Build - Clean Project hinzugefügt haben.

Arbeitete für mich :)

4
rischan

Bereinigen Sie Ihr Projekt. Hat für mich gearbeitet.

3
Wise Shepherd

Sie verwenden wahrscheinlich ein altes Lernprogramm, aber GCMRegistrar ist eine veraltete API-Klasse.

Bitte verwenden Sie stattdessen die GoogleCloudMessaging API.

Überprüfen Sie dies für eine vollständige Anleitung Push-Benachrichtigung mit gcm

2
kundan roy