¿Hay alguna forma de obtener datos de la "Notificación de GCM"? Aquí hay una parte de mi cadena json que envío con gcm: {"data":{"id":"123"}}
. Necesito obtener valor de identificación en mi aplicación, pero no sé cómo ... muchas gracias.Obtener datos de la notificación de GCM
Respuesta
Si está utilizando la nueva biblioteca de GCM, entonces necesita crear una clase que amplíe IntentService, aquí es donde la biblioteca de GCM le notificará cuando se reciba un mensaje de GCM. Por favor, eche un vistazo a la muestra MyIntentService.java:
@Override
public final void onHandleIntent(Intent intent) {
try {
String action = intent.getAction();
if (action.equals("com.google.android.c2dm.intent.REGISTRATION")) {
handleRegistration(intent);
} else if (action.equals("com.google.android.c2dm.intent.RECEIVE")) {
handleMessage(intent);
}
} finally {
synchronized(LOCK) {
sWakeLock.release();
}
}
}
private void handleMessage(Intent intent) {
String id = intent.getExtra("id");
}
Si no está utilizando la biblioteca de GCM, entonces la respuesta GCM está llegando a usted en un intento de su receptor, entonces se puede utilizar getExtras de intención(). getString() para recuperar el par de clave/valor de su notificación de GCM. p.ej.
// intent come in in your onReceive method of your BroadcastReceiver:
public onReceive(Context context, Intent intent) {
// check to see if it is a message
if (intent.getAction().equals("com.google.android.c2dm.intent.RECEIVE")) {
String id = intent.getExtras().getString("id");
String other_key = intent.getExtras().getString("other_key");
// if your key/value is a JSON string, just extract it and parse it using JSONObject
String json_info = intent.getExtras().getString("json_info");
JSONObject jsonObj = new JSONObject(json_info);
}
}
La mejor manera de obtenerlo como una representación json es agregar sus datos como un objeto json.
{
"registration_ids" : [
"id1",
"id2"
],
"data" : {
"my_json_object": {
"text" :"This is my message",
"title":"Some title"
}
},
"collapse_key":"12345"
}
Luego de analizar el objeto, simplemente:
String json = getIntent().getExtras().getString("my_json_object");
JsonObject jObject = new JsonObject(json);
y la mejor manera que he encontrado hasta ahora para "agregar sus datos como un objeto json" es: 'String json = gson.toJson ([YOUR_OBJECT]); Message msg = new Message.Builder(). AddData ("mensaje", json) .build(); gcmresult = sender.send (msg, [SU ID DE REG CLIENTE DE GCM], 5); ' –
<receiver android:name=".beforelogin.GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="android.intent.category.TAB" />
</intent-filter>
</receiver>
<service android:name=".beforelogin.GcmIntentService" />
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
Agregue su clase GCmBroadcastReceviver y clase GcmIntentService para recibir notificaciones –
- 1. notificación automática GCM con Asp.Net
- 2. Recuperar datos de notificación de notificación
- 3. GCM
- 4. ¿La identificación de registro de GCM expira?
- 5. Obtener notificación de documentos modificados en mongodb
- 6. android GCM no funciona
- 7. La vinculación de datos queda atrás notificación de evento - discusión
- 8. Administrador de SDK de Android Biblioteca de GCM
- 9. Android GCM time_to_live problema
- 10. GCM: java.lang.NoClassDefFoundError: com.google.android.gcm.GCMRegistrar
- 11. Android - Mantener la notificación estable en la barra de notificación
- 12. ID de proyecto de Android GCM, ¿cuál?
- 13. Entity Framework - Notificación de cambio de datos subyacentes (en la base de datos)
- 14. Recepción de notificaciones de GCM de Android cuando la aplicación está en estado detenido
- 15. ¿Cómo obtener una notificación de pegado del portapapeles y proporcionar mis propios datos?
- 16. La respuesta de GCM es: Error = No registrado
- 17. Notificación de Apple Push con envío de datos personalizados
- 18. notificación de bandeja en la actualización de la base de datos
- 19. Notificación de IntentService - NullPointerException al obtener el Contexto
- 20. Evitar notificación múltiple suena android
- 21. Obtener filas de la cuadrícula de datos
- 22. Técnica de notificación ligera
- 23. ¿Notificación de recolección de basura?
- 24. Notificación de actualización de la aplicación iOS
- 25. NSUserNotificationCenter descartar la notificación
- 26. Diferencia entre la notificación de inserción y la notificación de extracción?
- 27. La notificación de Android no desaparece después de hacer clic en la notificación
- 28. Actualizar la fecha de inicio para la notificación local y cancelar la notificación anterior
- 29. Obtener todos los datos de la postulación
- 30. Obtener datos de la plist Información
Ok, pero ¿cómo puedo llegar hasta aquí (onMessage (contexto Contexto protected void, la intención) Intención) cadena de notificación? – mysho
Actualicé mi respuesta, eche un vistazo. – azgolfer
¿Cómo puedo obtener gcm_notification_string de Intent? –