Administración de permisos de usuario
La API sensor proporciona un método que puede usar para solicitar al usuario permisos para usar un sensor o una colección de sensores.
Dado que los sensores pueden revelar información confidencial, Windows requiere que los usuarios habiliten sensores antes de que el programa pueda acceder a los datos.
Es posible que quiera solicitar permiso cuando quiera usar sensores para los que el sensorState actual está SENSOR_STATE_ACCESS_DENIED.
Para solicitar permisos, llame al método ISensorManager::RequestPermissions . Cuando se llama a este método, Windows abre el cuadro de diálogo Habilitar sensores para pedir al usuario que habilite los sensores solicitados. Este cuadro de diálogo proporciona al usuario los nombres de los sensores solicitados. El usuario puede elegir una de las siguientes opciones:
- Habilite estos sensores.
- No habilite estos sensores.
- Abra Panel de control para obtener más opciones.
Si un usuario elige No habilitar estos sensores, Windows no mostrará de nuevo el cuadro de diálogo Habilitar sensores para esos sensores concretos, incluso si el programa llama a RequestPermissions. Si el usuario elige cualquier otra opción, Windows permitirá que se muestre el cuadro de diálogo cuando se solicite. Si la llamada a RequestPermissions contiene algunos sensores que el usuario ha elegido mantener deshabilitado anteriormente, sensor API quitará estos sensores de la lista de sensores que ve el usuario.
Comportamiento modal o modeless
El método RequestPermissions toma un argumento booleano que determina si el cuadro de diálogo Habilitar sensores se muestra como una ventana modal o modeless. Esta configuración también afecta a si el comportamiento del código de retorno del cuadro de diálogo es sincrónico o asincrónico.
Cuando el modal, el cuadro de diálogo tiene el foco exclusivo entre las ventanas de la aplicación hasta que el usuario elige una opción y el código de retorno HRESULT de la llamada a RequestPermissions indica la opción del usuario. Cuando se modela, el cuadro de diálogo no tiene el foco exclusivo y la llamada a RequestPermissions se devuelve inmediatamente. En este caso, el código de retorno indica si el método se realizó correctamente, pero no se puede usar para determinar la elección del usuario. A continuación, puede determinar qué sensores se han habilitado controlando el evento OnStateChanged y comprobando cada sensor para SENSOR_STATE_READY.
Para obtener más información sobre los códigos de retorno, consulte la página de referencia RequestPermissions .
Procedimiento recomendado: Evitar varias llamadas de modeless a RequestPermissions
Las llamadas repetidas a RequestPermissions mostrarán varias instancias del cuadro de diálogo Habilitar estos sensores y pueden inundar potencialmente la pantalla con cuadros de diálogo, lo que da lugar a una experiencia de usuario deficiente. Si cree que después de la primera llamada a RequestPermissions, es posible que se instalen otros sensores de ubicación, que requieran otra llamada a RequestPermissions, debe llamar a RequestPermissions de forma modal o esperar hasta que se instalen todos los sensores de ubicación para realizar una llamada a modeless.
Temas relacionados