Lenguaje

DevicePolicyManager.SetPermissionGrantState Método

Definición

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 < no pueden conceder y revocar permisos para las aplicaciones compiladas 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 < la operación de la aplicación que coincide con el permiso se establece en , pero el permiso permanece concedido.

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 < . Si 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.

Java documentación para android.app.admin.DevicePolicyManager.setPermissionGrantState(android.content.ComponentName, java.lang.String, java.lang.String, int).

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.

Se aplica a