📊 Capítulo 18: Permissões & Recursos Nativos
Especialização em Mobile Nativo Android
🗺️ O Fluxo de Permissões Declarativas no Compose
sequenceDiagram
autonumber
actor U as Usuário
participant C as @Composable Screen
participant P as rememberPermissionState (Câmera)
participant OS as Android OS Permission Dialog
C->>P: Verifica status (hasPermission)
alt Permissão Já Concedida
C->>C: Renderiza CameraPreview() diretamente!
else Precisa de Permissão
C->>U: Exibe botão "Permitir Câmera"
U->>C: Clica no botão
C->>P: launchPermissionRequest()
P->>OS: Abre Dialog nativo do Android
OS->>U: "Permitir que o app use a Câmera?"
U->>OS: Clica em "Permitir durante o uso"
OS-->>P: Status atualizado para Granted!
P-->>C: Recompõe a tela exibindo a Câmera instantaneamente!
end
🎯 Slide 1: rememberLauncherForActivityResult Nativo
val cameraLauncher = rememberLauncherForActivityResult(
contract = ActivityResultContracts.TakePicturePreview()
) { bitmap ->
if (bitmap != null) {
viewModel.onFotoCapturada(bitmap)
}
}
Button(onClick = { cameraLauncher.launch(null) }) {
Text("Tirar Foto")
}
🎯 Slide 2: Permissões Granulares no Android 13 e 14+
-
O Android moderno não permite mais permissão genérica de
READ_EXTERNAL_STORAGE. - Você deve solicitar permissões específicas:
READ_MEDIA_IMAGES,READ_MEDIA_VIDEOou utilizar o Photo Picker nativo do Google Play Services (que não exige nenhuma permissão no Manifest!).
🎯 Slide 3: Biometria com BiometricPrompt
- Integre autenticação por impressão digital ou reconhecimento facial seguro para desbloquear áreas restritas do app.
🔗 Navegação do Capítulo 18
| 📖 Ler Conteúdo Completo | 🧠 Fazer Quiz | 💻 Ver Exemplos | 🧩 Exercícios |
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim