java - notificaciones - push notifications android
No se puede resolver el sÃmbolo GCM ''GoogleCloudMessaging'' (6)
GCM
que GCM
funcione en mi aplicación (para notificar a los usuarios cuando cambian nuestras horas o cuando tenemos promociones), pero sigo recibiendo el error Cannot resolve symbol ''GoogleCloudMessaging''
cuando intento usar la API de Google Cloud Messaging .
Estoy usando el recién lanzado estudio IDE de Android para codificar esto.
Aquí está mi código GcmBroadcastReciever.java:
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();
}
}
Las siguientes secciones lo guían a través del proceso de configuración de una implementación de GCM. Antes de comenzar, asegúrese de configurar el SDK de servicios de Google Play. Necesita este SDK para usar los métodos de GoogleCloudMessaging . Estrictamente hablando, para lo único que necesita absolutamente esta API es la mensajería ascendente (dispositivo a la nube), pero también ofrece una API de registro optimizada que se recomienda.
¿ Configuró el SDK de servicios de Google Play ?
Tienes que :
- Instalar el SDK de servicios de Google Play
- Consulte el proyecto
<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/
library en su proyecto de Android.
Para instalar el SDK de servicios de Google Play para desarrollo:
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.
Asegúrese de agregar dependencias en build.gradle> Sync> Build - Clean Project.
Trabajó para mi :)
Intenta limpiar tu proyecto. Trabajó para mi.
Probablemente estés usando un viejo tutorial pero GCMRegistrar es una clase de API obsoleta.
Utilice la API de GoogleCloudMessaging lugar.
Verifique esto para obtener una notificación push completa mediante gcm
Si está en Android Studio, asegúrese de que en su build.gradle
tenga:
dependencies {
compile ''com.google.android.gms:play-services:7.8.0''
}
y luego ejecuta build
.
Eso funcionó para mí.
Si está usando Android Studio:
1) Descargado el SDK de Google Play (usando el Administrador de SDK):
2) No te olvides de hacer clic en el botón "Synch Project with Gradle Files"
Eso hizo el truco para mí.