GCM da un mensaje nulo
Estoy intentando conseguir el mensaje del servidor como notificación del empuje en androide. Puedo golpear el servidor y pero conseguí el mensaje nulo del servidor. Puedo ver la notificación en android sin mensaje. Este es mi código de servidor y tengo código android de ANDROID HIVE
public class GCMBroadcast { @POST @Path("/getgcm") public String getGcmData(){ String str="success"; try { System.out.println("From CLient"); Sender sender = new Sender( "AIzaSyBbfXkbCYWQdE5qyjJKwl-YLBX-F01ICug"); // add your own google api key in android menifest // use this to send message with payload data Message message = new Message.Builder() .collapseKey("message") .timeToLive(3) .delayWhileIdle(true) .addData("message", "Welcome to Push Notifications") // you can get this message on client side app .build(); System.out.println("message:"+message); System.setProperty("http.proxyHost", "192.168.1.110"); // write you own proxy System.setProperty("http.proxyPort", "8080"); // write you own proxy host // Use this code to send notification message to a single device Result result = sender .send( message, "APA91bFEmQ53TKnJQXa0HbF9lXGTMEyRrp-6H9-_zZNBdFAUMsvXIG0rpvKcXn_6L5wBP77HskWw4svo6GLHZwfWdDf-yQCBAvIqp4fQF05cWqDtJ8mfNDnAQ8qdXByaEqwDmK3aQi0xIq7L3XGF1dSkbOOfBFIjlfDzlj4SG3z_SA-v3IUz_g4", 1); System.out.println("Message Result: " + result.toString()); // Use this code to send notification message to multiple // devices /*ArrayList<String> devicesList = new ArrayList<String>(); // add your devices RegisterationID, one for each device devicesList .add("APA91bFEmQ53TKnJQXa0HbF9lXGTMEyRrp-6H9-_zZNBdFAUMsvXIG0rpvKcXn_6L5wBP77HskWw4svo6GLHZwfWdDf-yQCBAvIqp4fQF05cWqDtJ8mfNDnAQ8qdXByaEqwDmK3aQi0xIq7L3XGF1dSkbOOfBFIjlfDzlj4SG3z_SA-v3IUz_g4"); // Use this code for multicast messages MulticastResult multicastResult = sender.send(message, devicesList, 0); sender.send(message, devicesList, 0); System.out.println("Message Result: " + multicastResult.toString()); */ } catch (Exception e) { e.printStackTrace(); str="Failure"; } return str; } }
Y estoy usando el ejemplo de la colmena android
- Notificación de emisión de GCM Cordova no funciona cuando no se ejecuta la aplicación
- Android GCM un dispositivo tiene múltiples registro
- Notificación de empuje que no recibe android
- Cómo evitar el retraso en los mensajes de GCM de Android / cambio de latidos del corazón
- ¿Cómo los servidores de la conexión GCM envían mensajes a un dispositivo Android?
- Abrir la aplicación Android desde la notificación PUSH
- ¿Cómo configurar Google Cloud Messaging para Android?
- Número máximo de temas en Google Cloud Messaging
- ¿Cómo puedo obtener mi dispositivo de ID de registro
- Manejo de identificadores de registro de GCM para varios dispositivos, mismo usuario
- Algunas consultas sobre C2DM en Android
- GCM no canceló el registro del dispositivo cuando la aplicación se desinstaló
- ID de registro duplicado de Android para diferentes dispositivos
En el enlace del que afirma obtener su código, el mensaje se extrae del parámetro price
:
/** * Method called on Receiving a new message * */ @Override protected void onMessage(Context context, Intent intent) { Log.i(TAG, "Received message"); String message = intent.getExtras().getString("price"); displayMessage(context, message); // notifies user generateNotification(context, message); }
Sin embargo, en su código de servidor, usted pone el mensaje en un parámetro de message
:
Message message = new Message.Builder() .collapseKey("message") .timeToLive(3) .delayWhileIdle(true) .addData("message", "Welcome to Push Notifications")
Eso explicaría obtener un mensaje nulo.
Es posible, por supuesto, que haya cambiado el código de cliente que obtuvo de ese enlace, pero como no publicó su código de cliente, no tengo manera de saberlo.
Hola en el proyecto de demostración que está recibiendo intention.getExtras (). GetString ("precio"); Price here.As que usted está usando php Como su php admin a prvide usted "nombre" campo y utilizar ese campo de nombre y obtener mensaje también resolver esto ..
@Override protected void onMessage(Context context, Intent intent) { Log.i(TAG, "Received message"); String message = intent.getExtras().getString("message"); displayMessage(context, message); // notifies user generateNotification(context, message); }
El parámetro y la clave variable deben coincidir.
Probaste a través de esta página Web, pero haz que la clave android "mensaje" sea idéntica:
- ¿Cómo implementar RingtonePreference en PreferenceFragmentCompat?
- Error de Android: java.net.SocketException: Socket cerrado