Integración de GCM para Android
Aunque hice toda la instrucción en la página de los reveladores de Google para el Gcm (ajustes del manifiesto, archivo de configuración, registro en la consola …)
public class MyInstanceIDListenerService extends IntentService { private static final String TAG = "RegIntentService"; private static final String[] TOPICS = {"global"}; public MyInstanceIDListenerService() { super(TAG); } @Override protected void onHandleIntent(Intent intent) { SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); try { // [START register_for_gcm] // Initially this call goes out to the network to retrieve the token, subsequent calls // are local. // [START get_token] InstanceID instanceID = InstanceID.getInstance(this); String token = instanceID.getToken(getString(R.string.gcm_defaultSenderId), GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); // [END get_token] Log.i(TAG, "GCM Registration Token: " + token); // TODO: Implement this method to send any registration to your app's servers. sendRegistrationToServer(token); // Subscribe to topic channels subscribeTopics(token); // You should store a boolean that indicates whether the generated token has been // sent to your server. If the boolean is false, send the token to your server, // otherwise your server should have already received the token. sharedPreferences.edit().putBoolean(QuickstartPreferences.SENT_TOKEN_TO_SERVER, true).apply(); // [END register_for_gcm] } catch (Exception e) { Log.d(TAG, "Failed to complete token refresh", e); // If an exception happens while fetching the new token or updating our registration data // on a third-party server, this ensures that we'll attempt the update at a later time. sharedPreferences.edit().putBoolean(QuickstartPreferences.SENT_TOKEN_TO_SERVER, false).apply(); } // Notify UI that registration has completed, so the progress indicator can be hidden. Intent registrationComplete = new Intent(QuickstartPreferences.REGISTRATION_COMPLETE); LocalBroadcastManager.getInstance(this).sendBroadcast(registrationComplete); } /** * Persist registration to third-party servers. * * Modify this method to associate the user's GCM registration token with any server-side account * maintained by your application. * * @param token The new token. */ private void sendRegistrationToServer(String token) { // Add custom implementation, as needed. } /** * Subscribe to any GCM topics of interest, as defined by the TOPICS constant. * * @param token GCM token * @throws IOException if unable to reach the GCM PubSub service */ // [START subscribe_topics] private void subscribeTopics(String token) throws IOException { for (String topic : TOPICS) { GcmPubSub pubSub = GcmPubSub.getInstance(this); pubSub.subscribe(token, "/topics/" + topic, null); } } // [END subscribe_topics]
}
- Enviar notificación en idioma árabe mediante GCM
- Azure Notification Hub ya no acepta la Clave API de GCM
- Error de compilación Android jónico: la generación falló con una excepción
- ¿Pueden dos dispositivos diferentes tener el mismo ID de registro de GCM?
- No se pudo resolver: com.google.android.gms: play-services-measurement: 9.0.2
Gcm_defaultSenderId y QuickStartPreferences no se pueden resolver. Por qué ?? ¿Cómo puedo superarlo?
- ¿Dónde está com.google.android.gcm.GCMBaseIntentService?
- GCM funciona bien en Android pero no funciona en iOS
- Alerta de visualización cuando llega el empuje
- GCM 'Error: No registrado'
- Java.lang.RuntimeException: WakeLock bajo-bloqueado C2DM_LIB
- Mensajería en la nube de Google para Android (GCM) e identificador de emisión incorrecta
- Cómo hacer push notificación de android de php
- enviar notificaciones push a varios dispositivos android usando GCM
gcm_defaultSenderId
es una cadena que debe crear. Es el ID del remitente de la aplicación.
QuickStartPreferences
sirve como un ejemplo. Es una clase que puede crear para mantener las claves de preferencia, si desea recordar que el token se ha enviado a su servidor (consulte el comentario sobre esta línea).
- Enviar datos usando alljoyn
- ¿Es una mala práctica tener sólo una actividad en su aplicación de Android que utiliza fragmentos?