Android requestPermissions

void requestPermissions (Activity activity, 
                String[] permissions, 
                int requestCode)

請求授予此應用程序的權限。這些權限必須在您的清單中被請求,它們不該該被授予您的應用程序,而且它們應該具備保護級別#PROTECTION_DANGEROUS,不管它們是由平臺仍是第三方應用程序聲明的。html

 

若是清單中有請求,則在安裝時授予正常權限PROTECTION_NORMAL。若是清單中有請求,則在安裝時授予簽名權限PROTECTION_SIGNATURE,而且您的應用程序的簽名與聲明權限的應用程序的簽名相匹配。java

 

若是您的應用程序沒有請求的權限,用戶將會看到UI來接受它們。在用戶接受或拒絕請求的權限以後,不管是否授予權限,您都將收到一個回調報告。您的活動必須實現ActivityCompat。OnRequestPermissionsResultCallback和權限請求的結果將被傳遞到它的onRequestPermissionsResult(int, String[], int[])方法。android

 

請注意,請求權限並不保證它會被授予,您的應用程序應該可以在沒有該權限的狀況下運行。app

 

此方法能夠啓動一個活動,容許用戶選擇授予哪些權限和拒絕哪些權限。所以,您應該準備好您的活動可能會暫停並從新開始。此外,授予某些權限可能須要從新啓動應用程序。在這種狀況下,系統將在將結果交付給onRequestPermissionsResult(int, String[], int[])以前從新建立活動堆棧。google

 

當檢查您是否有權限時,您應該使用checkSelfPermission(android.content)。背景下,字符串)。code

 

調用這個API來得到已經授予應用程序的權限將向用戶顯示UI,以決定應用程序是否仍然能夠持有這些權限。若是您的應用程序使用權限保護的數據的方式發生了顯著變化,這將很是有用。htm

 

若是您的活動在清單中將noHistory設置爲true,則不能請求權限,由於在這種狀況下,該活動不會接收包括onRequestPermissionsResult(int, String[], int[])在內的結果回調。ci

 

RuntimePermissions示例應用程序演示瞭如何使用此方法在運行時請求權限。字符串

Parameters
activity Activity: The target activity.

 

permissions String: The requested permissions. Must be non-null and not empty.

 

requestCode

int: Application specific request code to match with a result reported to onRequestPermissionsResult(int, String[], int[]). Should be >= 0.get

參見:

 

String [] onRequestPermissionsResult (int, int [])

checkSelfPermission (android.content。狀況下,字符串)

shouldShowRequestPermissionRationale (android.app。活動中,字符串)

相關文章
相關標籤/搜索