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.