Gerenciando permissões de usuário
A API de Sensor fornece um método que você pode usar para solicitar ao usuário permissões para usar um sensor ou uma coleção de sensores.
Como os sensores podem revelar informações confidenciais, o Windows exige que os usuários habilitem sensores antes que seu programa possa acessar qualquer dado.
Talvez você queira solicitar permissão quando quiser usar sensores para os quais o SensorState atual está SENSOR_STATE_ACCESS_DENIED.
Para solicitar permissões, chame o método ISensorManager::RequestPermissions . Quando você chama esse método, o Windows abre a caixa de diálogo Habilitar sensores para solicitar que o usuário habilite os sensores solicitados. Essa caixa de diálogo fornece ao usuário os nomes dos sensores solicitados. O usuário pode escolher uma das seguintes opções:
- Habilite esses sensores.
- Não habilite esses sensores.
- Abra Painel de Controle para obter mais opções.
Se um usuário escolher Não habilitar esses sensores, o Windows não mostrará a caixa de diálogo Habilitar sensores novamente para esses sensores específicos, mesmo que o programa chame RequestPermissions. Se o usuário escolher qualquer outra opção, o Windows permitirá que a caixa de diálogo seja exibida quando solicitado. Se sua chamada para RequestPermissions contiver alguns sensores que o usuário optou anteriormente por manter desabilitados, a API do Sensor removerá esses sensores da lista de sensores que o usuário vê.
Comportamento modal ou de modelagem
O método RequestPermissions usa um argumento booliano que determina se a caixa de diálogo Habilitar sensores é exibida como uma janela modal ou modeless. Essa configuração também afeta se o comportamento do código de retorno da caixa de diálogo é síncrono ou assíncrono.
Quando modal, a caixa de diálogo tem foco exclusivo entre as janelas do aplicativo até que o usuário escolha uma opção e o HRESULT retorne o código de sua chamada para RequestPermissions indica a opção do usuário. Quando modela, a caixa de diálogo não tem foco exclusivo e sua chamada para RequestPermissions retorna imediatamente. Nesse caso, o código de retorno indica se o método foi bem-sucedido, mas não pode ser usado para determinar a escolha do usuário. Em seguida, você pode determinar quais sensores foram habilitados manipulando o evento OnStateChanged e verificando cada sensor para SENSOR_STATE_READY.
Para obter mais informações sobre códigos de retorno, consulte a página de referência RequestPermissions .
Prática recomendada: evitar várias chamadas de modelagem para RequestPermissions
Chamadas de modeless repetidas para RequestPermissions exibirão várias instâncias da caixa de diálogo Habilitar esses sensores e podem potencialmente inundar a tela com caixas de diálogo, resultando em uma experiência ruim do usuário. Se você acha que após sua primeira chamada para RequestPermissions, outros sensores de localização podem ser instalados, exigindo outra chamada para RequestPermissions, você deve chamar RequestPermissions modally ou aguardar até que todos os sensores de localização sejam instalados para fazer uma chamada de modelagem.
Tópicos relacionados