Permisos de Android M con notificaciones de parsemisión

Todavía estoy un poco confundido sobre el nuevo modelo de permisos de tiempo de ejecución. ¿Necesitaría un permiso de tiempo de ejecución de alguno de los siguientes permisos necesarios para las notificaciones de inserción de Parse (GCM)?

<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <permission android:protectionLevel="signature" android:name="com.parse.starter.permission.C2D_MESSAGE" /> <uses-permission android:name="com.parse.starter.permission.C2D_MESSAGE" /> 

Entre los permisos que enumeró anteriormente, GET_ACCOUNTS requiere una comprobación de tiempo de ejecución porque su nivel de protección es peligroso.

Pero la cosa es, mientras que el permiso de GET_ACCOUNTS ya no es necesario para que GCM funcione (empezando con 7.5 Play Services, supongo), todavía es necesario si está usando Parse Push Notifications.

Parece que para que Parse proporcione la compatibilidad completa a la gama entera de los dispositivos accionados androide (es decir los dispositivos sin GCM basados ​​como los fuegos del Kindle, donde GCM no es apoyado y tienen que caer de nuevo a su propia puesta en práctica persistente del zócalo y por supuesto la Dispositivos con 4.0.3 y siguientes), Parse todavía necesita este permiso y algunos otros.

Un chico de Parse mencionó que:

Requerimos que se solicite, aka estar en AndroidManifest.xml, pero no requieren que se conceda.

El tema está en discusión, es posible que desee echar un vistazo a estos temas:

https://github.com/ParsePlatform/Parse-SDK-Android/issues/129 https://parse.com/questions/android-use-only-gcm-dont-require-additional-permissions

El permiso GET_ACCOUNTS requiere que el permiso se verifique en tiempo de ejecución, ya que pertenece al grupo de permisos peligrosos ( https://developer.android.com/guide/topics/security/permissions.html#normal-dangerous ).

Los otros son permisos normales y se otorgarán siempre y cuando se declaren en el archivo de manifiesto ( https://developer.android.com/guide/topics/security/normal-permissions.html )

Si te das cuenta de que no tienes el permiso en tiempo de ejecución, necesitarás solicitarlo, usando el método requestPermissions (Activity yourActivity, String [] permissions, int requestCode) . Después se mostrará al usuario un cuadro de diálogo no personalizable, solicitando el permiso.

Finalmente, debes anular el método onRequestPermissionsResult (int requestCode, String permissions [], int [] grantResults) en tu Activity, comprobando si el requestCode es el mismo requestCode que has enviado en requestPermissions y si se ha concedido el permiso de destino.

Hay otros casos que usted necesita considerar, como cuando el usuario no concede el permiso por primera vez, y usted todavía quiere preguntarle / ella. Con el fin de saber cómo manejar este caso le sugiero que lea esto: http://developer.android.com/intl/pt-br/training/permissions/requesting.html . También tiene códigos de ejemplo para solicitar permisos y comprobar los resultados.

De acuerdo con los documentos de los desarrolladores de Android, siempre y cuando defina estos permisos en su manifiesto, el sistema le concederá automáticamente estos permisos y no permitirá al usuario revocarlos. Por lo tanto, no es necesario comprobar estos permisos en tiempo de ejecución.

https://developer.android.com/preview/features/runtime-permissions.html

Esto se dice en la parte inferior de la página en la sección Permisos normales.

  • La notificación del constructor está obsoleta
  • GCM elimina el ID de registro antiguo si el usuario instala la aplicación de nuevo inmediatamente después de la desinstalación?
  • Notificación push de Android: determina si se muestra Notification.bigContentView
  • Notificación Big Text Android GCM
  • ¿Cómo implementar múltiples notificaciones push de GCM en una sola aplicación?
  • GET_ACCOUNTS durante el uso de GCM - ¿Por qué es necesario?
  • GCM de Android y múltiples fichas
  • Notificación push de Android GCM para aplicaciones de localización
  • GCM notificación de empuje funciona después de la aplicación de parada de la fuerza?
  • Obtenga el ID de registro canónico de GCM sin enviar un mensaje
  • Notificación de emisión del receptor de difusión
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.