DevicePolicyManager.SetPermissionGrantState Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Establece el estado de concesión de un permiso en tiempo de ejecución para una aplicación específica.
[Android.Runtime.Register("setPermissionGrantState", "(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;I)Z", "GetSetPermissionGrantState_Landroid_content_ComponentName_Ljava_lang_String_Ljava_lang_String_IHandler", ApiSince=23)]
[Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_RUNTIME_PERMISSIONS")]
public virtual bool SetPermissionGrantState(Android.Content.ComponentName? admin, string packageName, string permission, Android.App.Admin.PermissionGrantState grantState);
[<Android.Runtime.Register("setPermissionGrantState", "(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;I)Z", "GetSetPermissionGrantState_Landroid_content_ComponentName_Ljava_lang_String_Ljava_lang_String_IHandler", ApiSince=23)>]
[<Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_RUNTIME_PERMISSIONS")>]
abstract member SetPermissionGrantState : Android.Content.ComponentName * string * string * Android.App.Admin.PermissionGrantState -> bool
override this.SetPermissionGrantState : Android.Content.ComponentName * string * string * Android.App.Admin.PermissionGrantState -> bool
Parámetros
- admin
- ComponentName
Al que DeviceAdminReceiver está asociada esta solicitud. Null si el autor de la llamada no es un administrador de dispositivos.
- packageName
- String
Aplicación a la que se va a conceder o revocar un permiso.
- permission
- String
Permiso para conceder o revocar.
- grantState
- PermissionGrantState
El estado de concesión de permisos, que es uno de #PERMISSION_GRANT_STATE_DENIED, #PERMISSION_GRANT_STATE_DEFAULT, #PERMISSION_GRANT_STATE_GRANTED,
Devoluciones
si el permiso se concedió o revocó correctamente.
- Atributos
Comentarios
Establece el estado de concesión de un permiso en tiempo de ejecución para una aplicación específica. El estado puede ser #PERMISSION_GRANT_STATE_DEFAULT default en el que un usuario puede administrarlo a través de la interfaz de usuario, #PERMISSION_GRANT_STATE_DENIED denied, en la que se deniega el permiso y el usuario no puede administrarlo a través de la interfaz de usuario, y #PERMISSION_GRANT_STATE_GRANTED granted en el que se concede el permiso y el usuario no puede administrarlo a través de la interfaz de usuario. Solo puede llamar a este método un propietario de perfil, un propietario del dispositivo o un delegado dado el #DELEGATION_PERMISSION_GRANT ámbito a través #setDelegatedScopesde .
Tenga en cuenta que el usuario no puede administrar otros permisos en el grupo afectado a través de la interfaz de usuario y su estado concedido se mantendrá como el valor actual. Por lo tanto, se recomienda establecer el estado de concesión de todos los permisos del grupo afectado.
Al establecer el estado de concesión en #PERMISSION_GRANT_STATE_DEFAULT default no se revoca el permiso. Conserva la concesión anterior, si existe.
Los administradores de dispositivos con un
Los administradores con un targetSdkVersion ≥ android.os.Build.VERSION_CODES#Q pueden conceder y revocar permisos de todas las aplicaciones. Al igual que el usuario que revoca un permiso de una aplicación compilada con un
NOTA: En los dispositivos que se ejecutan android.os.Build.VERSION_CODES#S y versiones posteriores, el control sobre los siguientes permisos relacionados con sensores está restringido: <ul><li>Manifest.permission.ACCESS_FINE_LOCATION</li><li>Manifest.permission.ACCESS_BACKGROUND_LOCATION</li><li>Manifest.permission.ACCESS_COARSE_LOCATION</li<>li>Manifest.permission.CAMERA</li><>li Manifest.permission.RECORD_AUDIO</li li>><<Manifest.permission.RECORD_BACKGROUND_AUDIO/li><li>Manifest.permission.ACTIVITY_RECOGNITION</li><>li Manifest.permission.BODY_SENSORS</li<>/ul> En dispositivos que ejecutan android.os.Build.VERSION_CODES#BAKLAVA, también android.health.connect.HealthPermissions se incluyen en la lista restringida.
Un propietario del perfil no puede conceder estos permisos (es decir, llamar a este método con cualquiera de los permisos enumerados anteriormente y grantState de #PERMISSION_GRANT_STATE_GRANTED), pero puede denegarlos.
De forma predeterminada, un propietario del dispositivo puede continuar concediéndoles estos permisos. Sin embargo, para un mayor control de usuario, el administrador puede optar por no controlar las concesiones de estos permisos mediante la inclusión #EXTRA_PROVISIONING_SENSORS_PERMISSION_GRANT_OPT_OUT en los parámetros de aprovisionamiento. En ese caso, el control del propietario del dispositivo se limitará a denegar estos permisos.
Cuando los permisos relacionados con el sensor no se pueden conceder debido a los casos anteriores, al llamar a este método para conceder estos permisos se producirá un error silencioso, si los administradores de dispositivos se compilan con targetSdkVersion >= android.os.Build.VERSION_CODES#VANILLA_ICE_CREAM, este método producirá una SecurityExceptionexcepción .
NOTA: En los dispositivos que se ejecutan android.os.Build.VERSION_CODES#S y versiones posteriores, el control sobre los siguientes permisos está restringido para los propietarios de perfiles administrados: <ul<>li>Manifest.permission.READ_SMS</li></ul>
Un propietario de perfil administrado no puede conceder estos permisos (es decir, llamar a este método con cualquiera de los permisos enumerados anteriormente y grantState de #PERMISSION_GRANT_STATE_GRANTED), pero puede denegarlos.
Los intentos del administrador de conceder estos permisos, cuando el administrador está restringido de hacerlo, se omitirán silenciosamente (no se producirá ninguna excepción).
El control sobre los permisos siguientes está restringido para los propietarios de perfiles administrados: <ul<>li>Manifest.permission.READ_SMS</li></ul>
Un propietario de perfil administrado no puede conceder estos permisos (es decir, llamar a este método con cualquiera de los permisos enumerados anteriormente y grantState de #PERMISSION_GRANT_STATE_GRANTED), pero puede denegarlos.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.