Atualmente o Android utiliza um sistema com a solicitação de permissões por demanda, durante a utilização do aplicativo, o que aumenta o controle do usuário sobre o uso de recursos, mas também exige maior nível de interação. João está criando um aplicativo de fiscalização de restaurantes, com a inclusão de fotos nos registros, e diminuiu a quantidade de solicitações de permissão por meio do(a):
- A)gerência dos dados apresentados na Activity por meio de um componente do tipo ViewModel;
Errada: ViewModel serve para gerenciar dados de interface e ciclo de vida da Activity, não para tratar ou reduzir permissões de câmera.
- B)utilização do padrão Builder no acesso à câmera;
Errada: Builder é um padrão de construção de objetos e não tem relação com acesso à câmera ou com permissões no Android.
- C)acesso à câmera via ACTION_IMAGE_CAPTURE;
Certa: ACTION_IMAGE_CAPTURE chama o app de câmera do próprio sistema por intent, o que simplifica a captura da foto e reduz a necessidade de o app gerenciar a câmera diretamente.
- D)verificação da permissão para a câmera pelo método shouldShowRequestPermissionRationale;
Errada: shouldShowRequestPermissionRationale apenas informa se você deve explicar ao usuário por que a permissão é necessária; não reduz o número de solicitações.
- E)definição da permissão para a câmera no nível NORMAL.
Errada: permissão NORMAL é concedida automaticamente na instalação, mas câmera não é tratada assim no Android moderno, pois é permissão sensível e exige controle maior.
Gabarito: C
No Android moderno, permissões sensíveis, como câmera e localização, costumam ser pedidas em tempo de execução. A ideia é boa para o usuário, porque ele controla melhor o que o app pode usar, mas isso também aumenta a quantidade de telas e confirmações que aparecem durante o uso. Em um app de fiscalização com fotos, isso pode ficar chato rápido se o desenvolvedor insistir em acessar a câmera diretamente o tempo todo. Uma forma clássica de reduzir essa fricção é não abrir a câmera “na mão”, e sim chamar a aplicação nativa de câmera por meio de uma intent. Quando João usa ACTION_IMAGE_CAPTURE, o app envia a solicitação para o sistema abrir um aplicativo de câmera já existente no aparelho, que cuida da captura da imagem. Assim, o desenvolvimento fica mais simples e a experiência do usuário melhora, porque parte do trabalho e das permissões é assumida pelo app de câmera do sistema. Na prática, isso não elimina magicamente todas as permissões em qualquer cenário, mas diminui a necessidade de gerenciar a câmera diretamente dentro do aplicativo fiscalizador. É uma estratégia muito comum em questões de Android: usar recursos do sistema por intenção explícita ou implícita para evitar implementação mais pesada e menos amigável. Por isso, o gabarito é C. ACTION_IMAGE_CAPTURE é justamente a forma de acionar a câmera do dispositivo via intent, reduzindo a complexidade e a quantidade de solicitações de permissão dentro do app que está sendo desenvolvido.