Método ISensorManager::RequestPermissions (sensorsapi.h)
Abre uma caixa de diálogo do sistema para solicitar permissão do usuário para acessar dados do sensor.
Sintaxe
HRESULT RequestPermissions(
[in] HWND hParent,
[in] ISensorCollection *pSensors,
[in] BOOL fModal
);
Parâmetros
[in] hParent
Para Windows 8, se hParent for fornecido um valor, a caixa de diálogo será modal para a janela pai. Se hParent for NULL, a caixa de diálogo não será modal. A caixa de diálogo é sempre síncrona.
Para o Windows 7, o HWND é manipulado para uma janela que pode atuar como um pai para a caixa de diálogo de permissões. Deve ser NULL se fModal for TRUE.
[in] pSensors
Para Windows 8, esse valor não é usado.
Para o Windows 7, pSensors é um ponteiro para a interface ISensorCollection que contém a lista de sensores para os quais a permissão está sendo solicitada.
[in] fModal
Para Windows 8, esse valor não é usado. Consulte hParent para controlar a modalidade.
Para o Windows 7, fModal é um BOOL que especifica o modo da caixa de diálogo. Deve ser FALSE se hParent não for nulo.
Retornar valor
A tabela a seguir descreve códigos de retorno para resultados síncronos.
Código de retorno | Descrição |
---|---|
|
O usuário habilitou os sensores. |
|
O usuário optou por desabilitar os sensores. |
|
O usuário cancelou a caixa de diálogo ou recusou a elevação de permissão para mostrar a caixa de diálogo. |
A tabela a seguir descreve códigos de retorno para resultados assíncronos.
Código de retorno | Descrição |
---|---|
|
Todos os sensores da coleção de sensores foram exibidos para o usuário habilitar. O método foi bem-sucedido. |
|
Alguns dos sensores da coleção de sensores foram exibidos para o usuário habilitar. Alguns sensores podem ter sido removidos da coleção; por exemplo, porque o usuário havia escolhido anteriormente mantê-lo desabilitado. O método foi bem-sucedido. |
|
Um argumento não é válido. |
|
Um ponteiro é nulo. |
|
Todos os sensores da coleção de sensores foram desabilitados anteriormente pelo usuário. A caixa de diálogo não foi mostrada. |
Comentários
Fazer uma chamada síncrona do thread da interface do usuário de um aplicativo do Windows pode bloquear o thread da interface do usuário e tornar o aplicativo menos responsivo. Para evitar isso, não chame esse método do thread de interface do usuário com fModal definido como TRUE.
Se um aplicativo ou plug-in que está em execução no modo protegido, como um Objeto Auxiliar do Navegador (BHO) para Internet Explorer quando a Internet Explorer estiver em execução no modo protegido, chamar RequestPermissions e o usuário escolher a opção Não habilitar esse sensor de localização na caixa de diálogo, o Windows exibirá a caixa de diálogo novamente se RequestPermissions for chamado novamente pelo mesmo usuário. Os aplicativos executados no modo protegido podem optar por evitar chamar RequestPermissions na inicialização para que o usuário não seja submetido a uma possível caixa de diálogo indesejada sempre que o aplicativo for iniciado.
Exemplos
O código de exemplo a seguir solicita permissões para todos os sensores recuperados do gerenciador de sensores, por tipo, usando uma chamada de método assíncrono. A plataforma só solicitará que o usuário habilite sensores que ainda não estão habilitados. Para determinar se o usuário habilitou sensores nesse caso, você deve manipular o evento ISensorEvents::OnStateChanged . Para obter exemplos adicionais que demonstram como solicitar permissões, consulte Solicitando permissões de usuário.
// Get the sensor collection.
hr = pSensorManager->GetSensorsByType(SAMPLE_SENSOR_TYPE_TIME, &pSensorColl);
if(SUCCEEDED(hr))
{
// Request permissions for all sensors
// in the collection.
hr = pSensorManager->RequestPermissions(0, pSensorColl, FALSE);
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 7 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Nenhum compatível |
Plataforma de Destino | Windows |
Cabeçalho | sensorsapi.h |
Biblioteca | Sensorsapi.lib |
DLL | Sensorsapi.dll |