La intención del receptor de mensajes de la nube de Google no se inicia (devolución de llamada de intención de difusión: resultado = CANCELADO paraIntención)
Estoy tratando de hacer un cliente GCM, el registro está bien. También envío mensajes con éxito desde el servidor. Sin embargo, el cliente no inicia la intención. Dice
09-30 08: 39: 59.795: W / GTalkService (4667): [DataMsgMgr] devolución de llamada de intención de difusión: resultado = CANCELADO forIntent {act = com.google.android.c2dm.intent.RECEIVE cat = [dol.framework] Extras
- FCM devuelve error: NotRegistered después del primer mensaje
- Enviar notificación a un tema específico en Firebase en Java
- ¿Las notificaciones no siempre se reciben por teléfono?
- Un servidor que envía notificaciones push a dispositivos Android e iOS
- Enviar notificaciones push a la aplicación en una configuración limitada - fake_push_profile not found Ionic
Mi intención
public class GCMService extends IntentService{ public GCMService(String name) { super("GCMService"); } protected void onHandleIntent(Intent intent) { Bundle extras = intent.getExtras(); String messageType = gcm.getMessageType(intent); android.util.Log.i("hi","test"); if (!extras.isEmpty()) { if (GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE.equals(messageType)) { Logger.logInUI(tag, "Recieved: " + extras.toString()); } } GCMReciever.completeWakefulIntent(intent); } }
Y mi receptor
public class GCMReciever extends WakefulBroadcastReceiver { public void onReceive(Context context, Intent intent) { ComponentName comp = new ComponentName(context.getPackageName(), GCMService.class.getName()); startWakefulService(context, (intent.setComponent(comp))); Logger.log("hi","eetett"); setResultCode(Activity.RESULT_OK); } }
Y finalmente mi manifiesto
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="dol.framework" android:versionCode="1" android:versionName="1.0" > <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <permission android:name="dol.framework.gcm.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="dol.framework.gcm.permission.C2D_MESSAGE" /> <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:name="dol.framework.widget.DolApplication" android:label="Dol Framework" android:theme="@style/AppTheme" > <activity android:name="dol.framework.activity.DebugActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:label="@string/app_name" android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name="dol.framework.GCMReciever" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="dol.framework" /> </intent-filter> </receiver> <service android:name="dol.framework.GCMService"/> </application> </manifest>
Lo siento por el muro de texto. GCMService y GCMReceiver están en la parte superior de mi paquete (dol.framework). ¿Qué estoy haciendo mal? Aparte de eso, no estoy haciendo mucho. Sólo registro el dispositivo y luego estoy enviando un mensaje a este dispositivo. El registro imprime el mensaje en la parte superior pero no hace nada. ¿No debería empezar el servicio o algo así? No vi nada relacionado con ejemplos.
- Parse Push - Cómo abrir automáticamente una actividad sin la acción del usuario al recibir un empujón en Android
- La aplicación se bloquea si la aplicación se cierra mediante el servicio Push: parse.com
- Spring pedalea cliente web sockets para android
- La aplicación Ionic / Cordova no recibe notificación push en el fondo
- Despierta Android Phone / tablet?
- Enviar difusión al hacer clic en la notificación
- Enviar Notificaciones push a iOS / Android en WiFi cerrado (sin conexión a Internet)
- Aplicación Phonegap de Android: llevar la actividad al frente
En el permiso que definió y utilizó para GCM, tiene dol.framework.gcm.permission. Debe ser dol.framework.permission, ya que el paquete de su aplicación es dol.framework.
Intente cambiar el bit receptor de su manifiesto a esto:
<receiver android:name=".GCMReciever" android:exported="true" 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" /> <action android:name="dol.framework" /> </intent-filter> </receiver>
- Se produce una excepción para algunos usuarios con selector de contactos de correo electrónico
- Android: ¿Qué formato de imagen debo utilizar y por qué?