Compartilhar via


Gerenciando permissões de usuário

Importante

Em vez disso, use a Sensor API UWP.

A API de Sensor baseada em COM foi preterida e não deve ser usada em novos aplicativos. Nenhum recurso ou aprimoramento adicional é planejado e o suporte será limitado.

A API do 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.

Convém solicitar permissão quando quiser usar sensores cujo estado atual é 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 o 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 seu 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ê.

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. O código de retorno HRESULT da sua chamada para RequestPermissions indica a opção escolhida pelo usuário. Quando é sem módulo, 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 múltiplas chamadas não modais para RequestPermissions

Chamadas de modelagem 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ê achar que após sua primeira chamada para RequestPermissions, outros sensores de localização poderão ser instalados, exigindo outra chamada para RequestPermissions, você deve chamar RequestPermissions de forma modal ou aguardar até que todos os sensores de localização sejam instalados para fazer uma chamada não modal.

Privacidade e segurança na Plataforma de Sensor e Localização

Solicitando permissões de usuário