Cómo obtener el token del dispositivo
Después de que la instalación se ha hecho necesito conseguir el deviceToken para otros propósitos. Esto es lo que he desarrollado hasta ahora:
Parse.initialize(this, "qqd423WEfwWEF32FewferT434fs323rfRT", "g7Rre4g7gsGRwgGw458Hdf443gFHk534Mrtg34"); final ParseInstallation currentInstallation = ParseInstallation.getCurrentInstallation(); currentInstallation.saveInBackground(new SaveCallback() { public void done(ParseException e) { if (e == null) { System.out.println("ok"); deviceToken = currentInstallation.get("deviceToken").toString(); System.out.println(deviceToken); } else { System.out.println("not ok"); } } });
El problema es que si ejecuto el código de la aplicación se bloquea y este es el error generado:
- Token de dispositivo para notificación de empuje
- ¿Es la mejor práctica para almacenar y usar un token OAuth2 en Android?
- ¿Cómo almacenar de forma segura el token de acceso y el secreto en Android?
- ¿Cuándo expira un token gcm de android?
- Actualización de token de Firebase
02-02 09:44:17.151 ﹕ FATAL EXCEPTION: main, PID: 5855 java.lang.NullPointerException
y la pieza de código que genera esta es esta pieza:
deviceToken = currentInstallation.get("deviceToken").toString();
¿Hay alguien que me pueda ayudar? Simplemente necesito obtener el deviceToken después de la instalación.
- Inicia sesión con Facebook en mi sitio web Django a través de la aplicación para Android
- Rails de autenticación de usuario desde la aplicación nativa de Android
- Cómo crear un inicio de sesión sin contraseña para aplicaciones para móviles
- Nueva publicación "Autenticación con Google Play Services", Problemas con la obtención de un token a través de GoogleAuthUtil.getToken
No hay ningún problema en el código, supongo que está probando este código en el emulador y en el emulador no tendrá ningún deviceToken
, pruebe su código en el dispositivo real.
Podría ser tarde, pero también podría ser útil 🙂
Parse a veces tiene algunos retrasos cuando el método done () se llama, he visto que se llama después de haber jugado con la aplicación durante 3 minutos y salir de ella.
Utilicé un orden diferente para las llamadas al método:
Parse.initialize(this, "*******", "*******"); ParsePush.subscribeInBackground("", new SaveCallback() { @Override public void done(ParseException e) { if (null == e) { ParseInstallation install = ParseInstallation.getCurrentInstallation(); String token = install.getString("deviceToken"); if (token != null) { //saved it locally and other stuff } else { //saved a temporary default value locally } } } }); ParseInstallation.getCurrentInstallation().saveInBackground();
Espero que esto ayude de alguna manera.