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 會在安裝時授與。

呼叫此 API 之前先呼叫 #shouldShowRequestPermissionRationale(String) ,以檢查系統是否建議在要求許可權之前顯示合理 UI。

如果您的應用程式沒有要求的許可權,使用者就會看到使用者接受它們的 UI。 在使用者接受或拒絕要求的許可權之後,您會收到回呼來 #onRequestPermissionsResult(int, String[], int[]) 報告是否授與許可權。

請注意,要求許可權並不保證會授與許可權,而且您的應用程式應該能夠在沒有此許可權的情況下執行。

這個方法可能會啟動活動,讓使用者選擇要授與哪些許可權,以及要拒絕的許可權。 因此,您應該準備好活動可能會暫停和繼續。 此外,授與某些許可權可能需要重新開機您的應用程式。 在這種情況下,系統會在將結果傳遞至 #onRequestPermissionsResult(int, String[], int[]) 之前重新建立活動堆疊。

檢查您是否具有許可權時,應該使用 #checkSelfPermission(String)

如果您的活動設定 android.R.styleable#AndroidManifestActivity_noHistory noHistorytrue ,則無法要求許可權,因為在此情況下,活動不會收到包含 的結果回呼 #onRequestPermissionsResult(int, String[], int[])

RuntimePermissions範例應用程式示範如何使用此方法在執行時間要求許可權。

android.app.Activity.requestPermissions(java.lang.String[], int) JAVA 檔。

此頁面的部分是根據所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。

適用於