Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


GCM 'Error: No registrado'

Tengo éxito en probar mi código GCM.

Pero exactamente el mismo código, no pude conseguir GCM empujar y tiene:

  • Obtención de año, mes y fecha en Android
  • Cómo crear una barra de progreso personalizada en Android?
  • ¿Cómo imitar la aplicación de Lollipop teléfono, con el cambio de tamaño de los elementos superiores antes de que el contenido desplazable?
  • Taglib para Android
  • Android marshmallow solicitud de permiso?
  • La mejor manera de acceder a la base de datos en el servidor mediante la aplicación Android
  • Error de GCM: No registrado.

  • Cómo obtener el uso actual de memoria en android?
  • ¿Cómo utilizar Android DownloadManager?
  • Cómo establecer la casilla de verificación en el lado derecho del texto
  • RecyclerVista los artículos con gran espacio vacío después de 23.2.0
  • Layout_gravity en LinearLayout
  • Android NDK, dos bibliotecas estáticas y vinculación
  • 8 Solutions collect form web for “GCM 'Error: No registrado'”

    @LKM La respuesta de GCM 'Not Registered' significa siguiente "Si no se registra, debe quitar 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.RECEIVE intents. " De la documentación . Compruebe en qué caso recibe este error, cuando la aplicación se desinstala del dispositivo o describe un receptor de difusión incorrecto en AndroidManifest. Puede probar su funcionalidad GCM con mi servidor GCM de prueba . Espero que esto te ayude.

    Si está utilizando un dispositivo para realizar pruebas, debe eliminar el InstanceID antes de obtener el token y volver a probarlo porque una vez que sobrescribe su APK, elimina el registro de InstanceId y obtiene ese error NotRegistered. Por lo tanto, en la 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); 

    El Not Registered ocurre cuando GCM piensa que el dispositivo no podría manejar el mensaje. Esto sucede si la aplicación se desinstala o se configura incorrectamente para manejar el mensaje:

    Introduzca aquí la descripción de la imagen

    Basándome en las respuestas @Samik y @ O'Rilla, sugeriría los siguientes pasos:

    1. Desinstalar la instalación actual del dispositivo Android
    2. Asegúrese de que <receiver> y <sender> están definidos en el nodo <application> en AndroidManifest.xml .
    3. Asegúrate de que tienes la <category android:name="COM.COMPANY.YOURAPP" /> correcta <category android:name="COM.COMPANY.YOURAPP" /> en tu <receiver>
    4. Asegúrese de que la implementación del receptor es correcta

    Si realmente piensa que su código es correcto y sigue recibiendo error

     {"error": "NotRegistered"} 

    Intente desinstalar la aplicación manualmente desde el teléfono y ejecútela de nuevo (su dispositivo obtendrá un nuevo ID de registro).

    Al menos en mi caso el problema se resolvió!

    Tuve este error cuando tenía el receptor gcm fuera de la aplicación en el archivo de manifiesto. Mover el receptor en el ámbito de aplicación y todo funcionó. Un conejito muy feliz ahora.

     <application> ... <receiver> ... </receiver> ... </application> 

    Una cuenta de Google es un requisito en los dispositivos que ejecutan 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.

    Yo 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 manera:

     InstanceID instanceID = InstanceID.getInstance(this); String token = instanceID.getToken(getString(R.string.gcm_defaultSenderId), GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); 

    Yo estaba recibiendo el mismo error y me estaba volviendo loco por dos días sólidos.

    Después de probar todo lo que estaba en el libro, lo que estaba arreglando era deshabilitar GCM en la consola de los 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, el RegistrationIntentService debe estar en la raíz de su paquete o no funcionará! (Vea este ejemplo 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 simplemente que estás dando una identificación de registro equivocada. Así que para esto, ejecute primero su aplicación móvil y su ID de registro vendrá como símbolo. Ponga este token en el código del servidor de aplicaciones como ID de registro. Para ID de la aplicación, proporcione la ID del servidor, que puede obtener de la consola de desarrolladores de Google, su proyecto y las credenciales. Para Id de remitente, establezca su ID de proyecto que podría adquirir desde el proyecto, configuración en la consola de desarrollador.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.