Register now for Android Dev Summit 2019!

Privacidade do Android Q: mudanças na câmera e na conectividade

Este documento descreve várias restrições ao acesso a informações da câmera e de conectividade. Estas mudanças ajudam a proteger a privacidade do usuário.

Algumas delas afetam todos os apps que operam no Android Q, ao passo que outras afetam apenas os apps destinados ao Android Q.

Mudanças que afetam todos os apps

A alteração a seguir afeta todos os apps que operam no Android Q, mesmo se eles forem destinados ao Android 9 (nível de API 28) ou versão anterior.

O acesso a todas as informações da câmera requer permissão

O Android Q altera a amplitude das informações que o método getCameraCharacteristics() retorna por padrão. Especificamente, o app precisa ter permissão da CAMERA para acessar metadados possivelmente específicos do dispositivo que estão incluídos no valor de retorno desse método.

Se seu app não tiver a permissão da CAMERA, ele não poderá acessar os campos a seguir:

  • ANDROID_LENS_POSE_ROTATION
  • ANDROID_LENS_POSE_TRANSLATION
  • ANDROID_LENS_INTRINSIC_CALIBRATION
  • ANDROID_LENS_RADIAL_DISTORTION
  • ANDROID_LENS_POSE_REFERENCE
  • ANDROID_LENS_DISTORTION
  • ANDROID_LENS_INFO_HYPERFOCAL_DISTANCE
  • ANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE
  • ANDROID_SENSOR_REFERENCE_ILLUMINANT1
  • ANDROID_SENSOR_REFERENCE_ILLUMINANT2
  • ANDROID_SENSOR_CALIBRATION_TRANSFORM1
  • ANDROID_SENSOR_CALIBRATION_TRANSFORM2
  • ANDROID_SENSOR_COLOR_TRANSFORM1
  • ANDROID_SENSOR_COLOR_TRANSFORM2
  • ANDROID_SENSOR_FORWARD_MATRIX1
  • ANDROID_SENSOR_FORWARD_MATRIX2

Mudanças que afetam apps destinados ao Android Q

As mudanças a seguir só afetam apps destinados ao Android Q.

Restrição para ativar e desativar o Wi-Fi

Os apps destinados ao Android Q não podem ativar ou desativar o Wi-Fi. O método WifiManager.setWifiEnabled() sempre retorna false.

Se necessário, use um painel de configurações para solicitar que os usuários ativem e desativem o Wi-Fi.

Restrições de configuração de rede Wi-Fi

Para proteger a privacidade do usuário, a configuração manual da lista de redes Wi-Fi agora está restrita aos apps do sistema e a controladores de política de dispositivo (DPCs, na sigla em inglês). Um determinado DPC pode ser o proprietário do dispositivo ou do perfil.

Se seu app não se enquadra em nenhuma dessas categorias e é destinado ao Android Q, os métodos a seguir não retornam mais dados úteis:

  • O método getConfiguredNetworks() sempre retorna uma lista vazia.
  • Todo método de operação de rede que retorna um valor inteiro (addNetwork() e updateNetwork()) sempre retorna -1.
  • Toda operação de rede que retorna um valor booleano (removeNetwork(), reassociate(), enableNetwork(), disableNetwork(), reconnect() e disconnect()) sempre retorna false.

Se seu app precisa se conectar a redes Wi-Fi, use os métodos alternativos a seguir:

  • Para acionar uma conexão local instantânea com uma rede Wi-Fi, use WifiNetworkSpecifier em um objeto NetworkRequest padrão.
  • Para adicionar redes Wi-Fi que possam ser consideradas para fornecer ao usuário acesso à Internet, trabalhe com objetos WifiNetworkSuggestion. Você pode adicionar e remover redes que aparecem na caixa de diálogo para seleção de rede com conexão automática chamando addNetworkSuggestions() e removeNetworkSuggestions(), respectivamente. Esses métodos não exigem nenhuma permissão de localização.

Permissão de localização precisa necessária para APIs de telefonia, Wi-Fi e Bluetooth

A menos que seu app tenha a permissão ACCESS_FINE_LOCATION, ele não poderá usar vários métodos dentro das APIs Wi-Fi, Wi-Fi Aware ou Bluetooth quando executado no Android Q. A lista a seguir mostra os métodos afetados.

Telefonia

Wi-Fi

Bluetooth