(Herdado) Autenticação do Adobe Pass e o novo modelo de permissões "Marshmallow" do Android 6
- Tópicos:
- Authentication
A nova versão do Android 6 Marshmallow apresenta algumas atualizações no modelo de permissões, que pode afetar o comportamento de aplicativos que usam a versão 1.8 e mais antiga do Adobe Pass Authentication SDK.
Como um novo recurso, o novo sistema operacional Android oferece controle granular sobre as permissões que os aplicativos exigem no momento da instalação e no tempo de execução.
Especificamente, para aplicativos desenvolvidos no Android Studio usando o nível de API 23 e que usam o Adobe Pass Authentication SDK, o desenvolvedor precisará gravar um código personalizado (consulte o trecho de código abaixo) para acionar a caixa de diálogo de permissão/negação.
A seguir está o trecho de código usado para solicitar acesso de gravação ao armazenamento externo do 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.
}
}
Do ponto de vista dos usuários, após a instalação, os usuários são recebidos por uma janela solicitando que confirmem permissões de leitura/gravação para arquivos (veja a figura 2 abaixo). Isso leva a um dos dois resultados a seguir:
- Se o usuário confirmar as permissões, o fluxo de autenticação regular será mantido e os tokens serão armazenados no armazenamento global. Os usuários permanecerão autenticados no aplicativo e em vários aplicativos usando a Autenticação do Adobe Pass enquanto os tokens forem válidos.
- Se o usuário negar as permissões, as ações de gravação no armazenamento falharão e os usuários só serão autenticados até que saiam do aplicativo. Observe que alguns aplicativos são reinicializados ao alternar entre o primeiro e o segundo plano, para que os usuários sejam desconectados ao executar essa ação. Os tokens NÃO são armazenados e os usuários precisarão se autenticar sempre que usarem o aplicativo.
Figura: a caixa de diálogo de solicitação de permissão para aplicativos gravados com API de direcionamento nível 23