Activity.RequestPermissions(String[], Int32) Метод

Определение

Запрашивает разрешения, предоставляемые этому приложению.

[Android.Runtime.Register("requestPermissions", "([Ljava/lang/String;I)V", "", ApiSince=23)]
public void RequestPermissions (string[] permissions, int requestCode);
[<Android.Runtime.Register("requestPermissions", "([Ljava/lang/String;I)V", "", ApiSince=23)>]
member this.RequestPermissions : string[] * int -> unit

Параметры

permissions
String[]

Запрошенные разрешения. Должен иметь значение, отличное от NULL и не пустое.

requestCode
Int32

Код запроса конкретного приложения для сопоставления с результатом, передаваемым в #onRequestPermissionsResult(int, String[], int[]). Должно иметь значение >= 0.

Атрибуты

Комментарии

Запрашивает разрешения, предоставляемые этому приложению. Эти разрешения должны быть запрошены в манифесте, они не должны предоставляться вашему приложению, и они должны иметь уровень android.content.pm.PermissionInfo#PROTECTION_DANGEROUS dangerousзащиты независимо от того, объявлены ли они платформой или сторонним приложением.

Обычные android.content.pm.PermissionInfo#PROTECTION_NORMAL разрешения предоставляются во время установки, если они запрашиваются в манифесте. Разрешения подписи android.content.pm.PermissionInfo#PROTECTION_SIGNATURE предоставляются во время установки, если это запрашивается в манифесте, а подпись приложения соответствует подписи приложения, объявляющего разрешения.

Вызовите #shouldShowRequestPermissionRationale(String) перед вызовом этого API, чтобы проверка, рекомендует ли система отобразить пользовательский интерфейс с обоснованием перед запросом разрешения.

Если приложение не имеет запрошенных разрешений, пользователю будет предоставлен пользовательский интерфейс для их принятия. После того как пользователь примет или отклонит запрошенные разрешения, вы получите обратный вызов, #onRequestPermissionsResult(int, String[], int[]) сообщающий о том, были ли предоставлены разрешения.

Обратите внимание, что запрос разрешения не гарантирует, что оно будет предоставлено, и ваше приложение должно работать без этого разрешения.

Этот метод может запустить действие, позволяющее пользователю выбрать, какие разрешения следует предоставить, а какие — отклонить. Поэтому вы должны быть готовы к тому, что ваша деятельность может быть приостановлена и возобновлена. Кроме того, для предоставления некоторых разрешений может потребоваться перезапуск приложения. В этом случае система воссоздает стек действий перед доставкой результата в #onRequestPermissionsResult(int, String[], int[]).

При проверке наличия разрешения следует использовать #checkSelfPermission(String).

Вы не сможете запросить разрешение, если для вашего действия задано значение android.R.styleable#AndroidManifestActivity_noHistory noHistory , true так как в этом случае действие не будет получать обратные вызовы результатов, включая #onRequestPermissionsResult(int, String[], int[]).

В примерах приложений RuntimePermissions показано, как использовать этот метод для запроса разрешений во время выполнения.

Документация по Java для android.app.Activity.requestPermissions(java.lang.String[], int).

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.

Применяется к