Activity.RequestPermissions(String[], Int32) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
要求授與此應用程式的許可權。
[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 noHistory
為 true
,則無法要求許可權,因為在此情況下,活動不會收到包含 的結果回呼 #onRequestPermissionsResult(int, String[], int[])
。
RuntimePermissions範例應用程式示範如何使用此方法在執行時間要求許可權。
的 android.app.Activity.requestPermissions(java.lang.String[], int)
JAVA 檔。
此頁面的部分是根據所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。