語言

Activity.RequestPermissions 方法

定義

多載

名稱 Description
RequestPermissions(String[], Int32)

請求授權給此應用程式。

RequestPermissions(String[], Int32, Int32)

請求授權給此應用程式。

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[]

他們請求了許可。 必須是非空且非空。

requestCode
Int32

應用程式專用的請求代碼以匹配報告給 #onRequestPermissionsResult的結果。 應該是 >= 0。

屬性

備註

請求授權給此應用程式。 這些權限必須在你的清單中申請,不應授予你的應用程式,且保護等級必須是危險的,不論是平台或第三方應用程式宣告的。 正常權限PermissionInfo.PROTECTION_NORMAL會在安裝時於清單中請求時授予。 簽名權限PermissionInfo.PROTECTION_SIGNATURE會在安裝時授予,前提是清單中要求,且你的應用程式簽名與宣告權限的應用程式簽名相符。

在呼叫此 API 前,請先呼叫 shouldShowRequestPermissionRationale(String),確認系統是否建議在請求權限前先顯示 Rationale UI。

如果你的應用程式沒有請求的權限,使用者會看到一個接受權限的介面。 使用者接受或拒絕所請求的權限後,你將收到 onRequestPermissionsResult(int, String, int) 的回撥,報告權限是否被授予。

請注意,請求權限並不保證一定會獲得,應用程式在沒有此權限的情況下應該能執行。

此方法可啟動一項活動,讓使用者選擇授予與拒絕的權限。 因此,你應該準備好,你的活動可能會被暫停並恢復。 此外,授予某些權限可能需要重新啟動應用程式。 在這種情況下,系統會在將結果交付給 onRequestPermissionsResult(int, String, int) 之前,重新建立活動堆疊。

檢查是否有權限時,應該使用 checkSelfPermission(String)。

如果你的活動將 noHistory 設為 true,你無法申請權限,因為此時活動不會收到包括 onRequestPermissionsResult(int, String, int) 在內的回調。

權限範例庫示範如何在執行時使用此方法請求權限。

另請參閱:

如果 requestCode 為負,則使用 IllegalArgumentException 拋出。

Android 參考資料。android.app.Activity.requestPermissions

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於

RequestPermissions(String[], Int32, Int32)

請求授權給此應用程式。

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

參數

permissions
String[]

他們請求了許可。 必須是非空且非空。

requestCode
Int32

應用程式專用的請求代碼以匹配報告給 #onRequestPermissionsResult的結果。 應該是 >= 0。

deviceId
Int32

應用程式正在為這台裝置請求權限。 主要/實體裝置被指派 Context#DEVICE_ID_DEFAULT,虛擬裝置則被分配獨特的裝置 ID。

屬性

備註

請求授權給此應用程式。 這些權限必須在你的清單中申請,不應授予你的應用程式,且保護等級必須是危險的,不論是平台或第三方應用程式宣告的。 正常權限PermissionInfo.PROTECTION_NORMAL會在安裝時於清單中請求時授予。 簽名權限PermissionInfo.PROTECTION_SIGNATURE會在安裝時授予,前提是清單中要求,且你的應用程式簽名與宣告權限的應用程式簽名相符。

在呼叫此 API 前,請先呼叫 shouldShowRequestPermissionRationale(String),確認系統是否建議在請求權限前先顯示 Rationale UI。

如果你的應用程式沒有請求的權限,使用者會看到一個接受權限的介面。 使用者接受或拒絕所請求的權限後,你將收到 onRequestPermissionsResult(int, String, int) 的回撥,報告權限是否被授予。

請注意,請求權限並不保證一定會獲得,應用程式在沒有此權限的情況下應該能執行。

此方法可啟動一項活動,讓使用者選擇授予與拒絕的權限。 因此,你應該準備好,你的活動可能會被暫停並恢復。 此外,授予某些權限可能需要重新啟動應用程式。 在這種情況下,系統會在將結果交付給 onRequestPermissionsResult(int, String, int) 之前,重新建立活動堆疊。

檢查是否有權限時,應該使用 checkSelfPermission(String)。

如果你的活動將 noHistory 設為 true,你無法申請權限,因為此時活動不會收到包括 onRequestPermissionsResult(int, String, int) 在內的回調。

權限範例庫示範如何在執行時使用此方法請求權限。

另請參閱:

如果 requestCode 為負,則使用 IllegalArgumentException 拋出。

Android 參考資料。android.app.Activity.requestPermissions

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於