android - google - GCM ''Error: No Registrado''
registration id firebase (8)
Tengo éxito en la prueba de mi código GCM.
Pero exactamente el mismo código, no pude obtener GCM y obtuve:
Error de GCM: No registrado.
El mensaje Not Registered
ocurre cuando GCM piensa que el dispositivo no pudo manejar el mensaje. Esto sucede si la aplicación está desinstalada o mal configurada para manejar el mensaje:
Basado en las respuestas de @Samik y @ O''Rilla, sugeriría los siguientes pasos:
- Desinstala la instalación actual del dispositivo Android.
- Asegúrese de tener
<receiver>
y<sender>
definidos en el nodo<application>
enAndroidManifest.xml
. - Asegúrate de tener la
<category android:name="COM.COMPANY.YOURAPP" />
en tu<receiver>
- Asegúrese de que la implementación de Receiver es correcta
Estaba usando el antiguo código obsoleto para GCM:
if (gcm == null) {
gcm = GoogleCloudMessaging.getInstance(this);
}
String regId = gcm.register(SENDER_ID);
msg = "Device registered, registration ID=" + regId;
y al intentar cambiar a la nueva forma:
InstanceID instanceID = InstanceID.getInstance(this);
String token = instanceID.getToken(getString(R.string.gcm_defaultSenderId),
GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
Estaba recibiendo el mismo error y me estaba volviendo loco durante dos días seguidos.
Después de probar todo lo que estaba en el libro, lo que solucionó fue deshabilitar GCM en la consola de desarrolladores, volver a habilitarlo y luego ir aquí: https://developers.google.com/mobile/add para generar un nuevo archivo google-services.json
para mi aplicación de Android
¡También tenga en cuenta que el servicio de servicio de RegistrationIntentService
debe estar en la raíz de su paquete o no funcionará! (vea esta muestra para la implementación de gcm en Android: https://github.com/google/gcm )
Espero que esto ayude a alguien porque perdí días en esto !!!! > <
Esto significa que simplemente estás dando una identificación de registro incorrecta. Entonces, para esto, primero ejecute su aplicación móvil y su ID de registro vendrá como token. Ponga este token en el código del servidor de su aplicación como ID de registro. Para la ID de la aplicación, indique la ID del servidor, que puede obtener de la consola de desarrolladores de Google, su proyecto y las credenciales. Para la identificación del remitente, establezca su ID de proyecto que podría adquirirse desde el proyecto, la configuración en la consola del desarrollador.
Si está utilizando un dispositivo para realizar pruebas, debe eliminar el InstanceID antes de obtener el token y volver a realizar las pruebas, porque una vez que sobrescribe su APK, anula el registro de InstanceId y obtiene el error NotRegistered. Entonces, en su clase RegisterIntentService, en la función onHandleIntent haga lo siguiente:
InstanceID instanceID = InstanceID.getInstance(this);
try
{
instanceID.deleteInstanceID();
} catch(IOException e)
{
e.printStackTrace();
}
instanceID = InstanceID.getInstance(this);
Si realmente crees que tu código es correcto y sigue recibiendo errores
{"error": "NotRegistered"}
intente desinstalar la aplicación manualmente desde el teléfono y vuelva a ejecutarla (su dispositivo obtendrá una nueva identificación de registro).
¡Al menos en mi caso el problema fue resuelto!
Tuve este error cuando tuve el receptor gcm fuera de la aplicación en el archivo de manifiesto. Trasladó el receptor al ámbito de aplicación y todo funcionó. Un conejito muy feliz ahora.
<application>
...
<receiver>
...
</receiver>
...
</application>
Una cuenta de Google es un requisito en dispositivos con Android 4.0.4 o inferior. http://developer.android.com/google/gcm/gcm.html
También debe agregar <uses-permission android:name="android.permission.GET_ACCOUNTS" />
en su archivo de manifiesto.
La respuesta de GCM Not Registered
significa "Si no está NotRegistered
, debe eliminar el ID de registro de la base de datos del servidor porque la aplicación se desinstaló del dispositivo o no tiene un receptor de difusión configurado para recibir com.google.android.c2dm.intent .RECEIVAR las intenciones ". de la documentation . Compruebe en qué caso recibe este error, cuando la aplicación se desinstala del dispositivo o si describe un receptor de difusión incorrecto en AndroidManifest. Puede probar su funcionalidad GCM con mi servidor de prueba GCM . Espero que esto te ayude.