Paquete de análisis desde la notificación de android push
Estoy usando GCM para enviar la notificación al móvil usando este ejemplo y la notificación es empujada. Pero no pude analizar el paquete recibido de la intención. Este es el paquete que recibí del Bundle[{message={"valid":"bbb","deal":"its working","address":"some","name":"aaa"}, android.support.content.wakelockid=1, collapse_key=do_not_collapse, from=198162727742}]
registro. Bundle[{message={"valid":"bbb","deal":"its working","address":"some","name":"aaa"}, android.support.content.wakelockid=1, collapse_key=do_not_collapse, from=198162727742}]
. Y lo convertí en cadena y luego trató de convertir a json objeto utilizando este código json = new JSONObject(message);
Pero no hay suerte. Puede alguien decir lo que estoy haciendo mal aquí. gracias por adelantado
- Estructura del paquete de patrones de Android MVP
- El administrador de aplicaciones para Android muestra un nombre de aplicación incorrecto
- Despliegue del parcelero dando datos incorrectos
- ¿Cómo puedo convertir un Bundle a un PersistableBundle?
- Ventajas de utilizar Bundle en lugar de Direct Intent putExtra () en Android
- Cambiar el identificador del paquete del juego libGDX
- ¿Cuánto dura un paquete?
- La aplicación de Android aparece varias veces en la lista "Aplicaciones recientes"
- Android no puede obtener matriz de bytes de la intención
- Parcelable donde / cuando se describeContents () usado?
- Android E / Parcel: Clase no encontrada al desmarcar (sólo en Samsung Tab3)
- Cómo comprobar si Facebook está instalado Android
- Cómo definir parcelable de tipo de interfaz en el archivo .aidl?
En el método que recibió la intención de hacer esto:
protected void onMessage(Context context, Intent intent) { //log the message in JSON format Log.i(TAG, "Received message >> " + intent.getExtras().toString()); //Retrieve message and extra String message = intent.getExtras().getString("message"); }
El objeto JSON real es el siguiente:
{"valid":"bbb","deal":"its working","address":"some","name":"aaa"}
El resto no es en realidad JSON.
Trate de analizar sólo esta línea, y funcionará =)
Asi que:
json = new JSONObject( bundle.getString("message") );
Debe utilizar las funciones integradas del Bundle
para obtener datos ( getString
por ejemplo). Pruebe el siguiente código:
String jsonStr = bundle.getString("message"); json = new JSONObject(jsonStr);
Tienes que tomar el valor JSON contra la tecla "mensaje" y convertirlo en cadena
prueba esto…
...... @Override protected void onHandleIntent(Intent intent) { Bundle extras = intent.getExtras(); GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this); String messageType = gcm.getMessageType(intent); if (!extras.isEmpty()) { if (GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR .equals(messageType)) { sendNotification("Send error: " + extras.toString()); } else if (GoogleCloudMessaging.MESSAGE_TYPE_DELETED .equals(messageType)) { sendNotification("Deleted messages on server: " + extras.toString()); } else if (GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE .equals(messageType)) { Log.i("Notification", "Completed work @ " + SystemClock.elapsedRealtime()); Log.d(CabChainGlobal.APPTAG, "Message received: " + extras.toString()); sendNotification("" + extras.get("message")); Log.i("Notification Received", "Received: " + extras.toString()); } } GcmBroadcastReceiver.completeWakefulIntent(intent); }
…..
- Encontrar el offset superior del primer elemento visible en un RecyclerView
- Cocos2d para Android que soporta diferentes resoluciones