(Heredado) Autenticación de Adobe Pass y el nuevo modelo de permisos de Android 6 "Marshmallow" adobe-primetime-authentication-and-the-android-6-marshmallow-new-permissions-model
La nueva versión de Android 6 Marshmallow presenta algunas actualizaciones del modelo de permisos, que pueden afectar al comportamiento de las aplicaciones que utilizan la versión 1.8 y anteriores del SDK de autenticación de Adobe Pass.
Como nueva característica, el nuevo sistema operativo Android ofrece un control granular de sobre los permisos que las aplicaciones requieren en el momento de la instalación y durante la ejecución.
En concreto, para las aplicaciones desarrolladas en Android Studio que usan el nivel de API 23 y que usan el SDK de autenticación de Adobe Pass, el desarrollador tendrá que escribir código personalizado (consulte el fragmento de código que aparece a continuación) para almacenar en déclencheur el cuadro de diálogo de permitir/denegar permisos.
A continuación se muestra un extracto de código utilizado para solicitar acceso de escritura al almacenamiento externo del dispositivo:
// Here, thisActivity is the current activity
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.WRITE_EXTERNAL_STORAGE) {
// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
// Show an expanation to the user *asynchronously* -- don't block
// this thread waiting for the user's response! After the user
// sees the explanation, try again to request the permission.
} else {
// No explanation needed, we can request the permission.
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE);
// MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE is an
// app-defined int constant. The callback method gets the
// result of the request.
}
}
Desde el punto de vista de los usuarios, tras la instalación, los usuarios son recibidos por una ventana pidiéndoles que confirmen los permisos de lectura y escritura para los archivos (vea la figura 2 a continuación). Esto conduce a uno de los dos resultados siguientes:
- Si el usuario confirma los permisos, se mantendrá el flujo de autenticación normal y los tokens se almacenarán en el almacenamiento global. Los usuarios permanecerán autenticados en la aplicación y en todas las aplicaciones mediante la autenticación de Adobe Pass durante el tiempo en que los tokens sean válidos.
- Si el usuario deniega los permisos, las acciones de escritura en el almacenamiento fallarán y los usuarios solo se autenticarán hasta que salgan de la aplicación. Tenga en cuenta que algunas aplicaciones se reinicializan al cambiar entre primer y segundo plano, de modo que se cerrará la sesión de los usuarios al realizar esta acción. Los tokens NO se almacenan, y los usuarios deberán autenticarse cada vez que usen la aplicación.
Imagen: cuadro de diálogo de solicitud de permiso para aplicaciones escritas en el nivel de API de segmentación 23