No todos los permisos del grupo de permisos ACCOUNT se conceden automáticamente

En mi aplicación, necesito los siguientes permisos para crear una cuenta:

<uses-permission android:name="android.permission.GET_ACCOUNTS"/> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/> <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/> <uses-permission android:name="android.permission.USE_CREDENTIALS"/> 

Es mi entendimiento que en la M, estos deben ser otorgados automáticamente.

Sin embargo, lo que estoy viendo es que sólo GET_ACCOUNTS se concede. He comprobado esto con el código siguiente:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); logPermissionStatus(Manifest.permission.GET_ACCOUNTS); logPermissionStatus(Manifest.permission.MANAGE_ACCOUNTS); logPermissionStatus(Manifest.permission.AUTHENTICATE_ACCOUNTS); logPermissionStatus(Manifest.permission.USE_CREDENTIALS); } private void logPermissionStatus(String permission) { if (checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED) { Log.d("AccountPermissions", "Granted: " + permission); } else { Log.d("AccountPermissions", "Denied: " + permission); } } 

Qué impresiones:

 D/AccountPermissions﹕ Granted: android.permission.GET_ACCOUNTS D/AccountPermissions﹕ Denied: android.permission.MANAGE_ACCOUNTS D/AccountPermissions﹕ Denied: android.permission.AUTHENTICATE_ACCOUNTS D/AccountPermissions﹕ Denied: android.permission.USE_CREDENTIALS 

Si intento solicitar los permisos

 requestPermissions(new String[] { Manifest.permission.GET_ACCOUNTS, Manifest.permission.MANAGE_ACCOUNTS, Manifest.permission.AUTHENTICATE_ACCOUNTS, Manifest.permission.USE_CREDENTIALS, }, 1); 

El cuadro de diálogo dice "¿Permitir que AccountPermissions realice una acción desconocida?", Lo que me lleva a creer que no se pretende que se soliciten al usuario. Además, el grupo de permisos ACCOUNT se muestra con permisos heredados en la página de información de la aplicación.

¿Necesito hacer algo para que Android me conceda estos permisos de forma automática, o se supone que debo solicitarlos al usuario?

Esto fue arreglado en la última vista previa de M.

AUTHENTICATE_ACCOUNTS, MANAGE_ACCOUNTS, USE_CREDENTIALS ya no existen. Hemos definido el alcance de las API de tal manera que sólo el UID del autenticador puede realizar las operaciones protegidas por estos permisos. Las aplicaciones normales no tienen un caso de uso válido para usar estas operaciones.

https://code.google.com/p/android-developer-preview/issues/detail?id=2592

  • Permiso de Marshmallow: Componente Lifecycle
  • ¿Cuándo debo usar el permiso ACCESS_COARSE_LOCATION?
  • Android Marshmallow Callback cuando el usuario revoca los permisos de la configuración?
  • ¿Cómo puede la aplicación de configuración iniciar la actividad no exportada de una aplicación?
  • ¿Cuál es la mejor manera de comprobar los permisos en tiempo de ejecución mediante la arquitectura MVP?
  • Java.lang.RuntimeException: inicio fallido
  • ¿Por qué mi aplicación de mapa se bloquea si configuro maxSdkVersion en el permiso WRITE_EXTERNAL_STORAGE?
  • Tener problemas para pedir permiso múltiple en android Marshmallow
  • ¿Permisos opcionales para que una aplicación pueda mostrarse en todos los dispositivos y activar funciones opcionales en algunos?
  • Proporcionar texto personalizado para el diálogo de permisos de Android M
  • Método checkSelfPermission no funciona en targetSdkVersion 22
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.