Idioma

DevicePolicyManager.SetPermissionGrantState Método

Definição

Define o estado de concessão de uma permissão de runtime para um aplicativo específico.

[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

À qual DeviceAdminReceiver essa solicitação está associada. Nulo se o chamador não for um administrador do dispositivo.

packageName
String

O aplicativo para o qual conceder ou revogar uma permissão.

permission
String

A permissão para conceder ou revogar.

grantState
PermissionGrantState

O estado de concessão de permissão, que é um dos#PERMISSION_GRANT_STATE_DENIED, #PERMISSION_GRANT_STATE_DEFAULT, #PERMISSION_GRANT_STATE_GRANTED

Retornos

se a permissão foi concedida ou revogada com êxito.

Atributos

Comentários

Define o estado de concessão de uma permissão de runtime para um aplicativo específico. O estado pode ser #PERMISSION_GRANT_STATE_DEFAULT default no qual um usuário pode gerenciá-lo por meio da interface do usuário, #PERMISSION_GRANT_STATE_DENIED deniedno qual a permissão é negada e o usuário não pode gerenciá-la por meio da interface do usuário e #PERMISSION_GRANT_STATE_GRANTED granted na qual a permissão é concedida e o usuário não pode gerenciá-la por meio da interface do usuário. Esse método só pode ser chamado por um proprietário de perfil, proprietário do dispositivo ou um delegado dado o #DELEGATION_PERMISSION_GRANT escopo por meio #setDelegatedScopesde .

Observe que o usuário não pode gerenciar outras permissões no grupo afetado por meio da interface do usuário e seu estado concedido será mantido como o valor atual. Portanto, é recomendável que você defina o estado de concessão de todas as permissões no grupo afetado.

Definir o estado de concessão para #PERMISSION_GRANT_STATE_DEFAULT default não revogar a permissão. Ele mantém a concessão anterior, se houver.

Os administradores de dispositivo com um < não podem conceder e revogar permissões para aplicativos criados com um < .

Os administradores com um targetSdkVersion > android.os.Build.VERSION_CODES#Q podem conceder e revogar permissões de todos os aplicativos. Semelhante ao usuário que revoga uma permissão de um aplicativo criado com um < a operação de aplicativo que corresponde à permissão é definida como , mas a permissão permanece concedida.

OBSERVAÇÃO: Em dispositivos em execução android.os.Build.VERSION_CODES#S e acima, o controle sobre as seguintes permissões relacionadas a sensores é restrito: <ul<>li>Manifest.permission.ACCESS_FINE_LOCATION</li>><Manifest.permission.ACCESS_BACKGROUND_LOCATION</li<>li>Manifest.permission.ACCESS_COARSE_LOCATION</li>><Manifest.permission.CAMERA</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> Em dispositivos em execuçãoandroid.os.Build.VERSION_CODES#BAKLAVA, eles android.health.connect.HealthPermissions também estão incluídos na lista restrita.

Um proprietário de perfil pode não conceder essas permissões (ou seja, chamar esse método com qualquer uma das permissões listadas acima e grantState de #PERMISSION_GRANT_STATE_GRANTED), mas pode negá-las.

Um proprietário do dispositivo, por padrão, pode continuar concedendo essas permissões. No entanto, para aumentar o controle do usuário, o administrador pode recusar o controle de concessões para essas permissões, incluindo #EXTRA_PROVISIONING_SENSORS_PERMISSION_GRANT_OPT_OUT nos parâmetros de provisionamento. Nesse caso, o controle do proprietário do dispositivo será limitado a negar essas permissões.

Quando as permissões relacionadas ao sensor não forem concedidas devido aos casos acima, chamar esse método para conceder essas permissões falhará silenciosamente, se os administradores do dispositivo forem criados com < . Se forem criados com targetSdkVersion >= android.os.Build.VERSION_CODES#VANILLA_ICE_CREAM, esse método gerará um SecurityException.

OBSERVAÇÃO: Em dispositivos em execução android.os.Build.VERSION_CODES#S e acima, o controle sobre as seguintes permissões é restrito para proprietários de perfil gerenciado: <ul<>li>Manifest.permission.READ_SMS</li></ul>

Um proprietário de perfil gerenciado pode não conceder essas permissões (ou seja, chamar esse método com qualquer uma das permissões listadas acima e grantState de #PERMISSION_GRANT_STATE_GRANTED), mas pode negá-las.

As tentativas do administrador de conceder essas permissões, quando o administrador estiver impedido de fazer isso, serão silenciosamente ignoradas (nenhuma exceção será gerada).

O controle sobre as seguintes permissões é restrito para proprietários de perfil gerenciado: <ul<>li>Manifest.permission.READ_SMS</li></ul>

Um proprietário de perfil gerenciado pode não conceder essas permissões (ou seja, chamar esse método com qualquer uma das permissões listadas acima e grantState de #PERMISSION_GRANT_STATE_GRANTED), mas pode negá-las.

Java documentação para android.app.admin.DevicePolicyManager.setPermissionGrantState(android.content.ComponentName, java.lang.String, java.lang.String, int).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a