Fragment.RequestPermissions(String[], Int32) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Requests permissions to be granted to this application.
[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
Parameters
- permissions
- String[]
The requested permissions. Must me non-null and not empty.
- requestCode
- Int32
Application specific request code to match with a result
reported to #onRequestPermissionsResult(int, String[], int[])
.
Should be >= 0.
- Attributes
Remarks
Requests permissions to be granted to this application. These permissions must be requested in your manifest, they should not be granted to your app, and they should have protection level android.content.pm.PermissionInfo #PROTECTION_DANGEROUS dangerous
, regardless whether they are declared by the platform or a third-party app.
Normal permissions android.content.pm.PermissionInfo#PROTECTION_NORMAL
are granted at install time if requested in the manifest. Signature permissions android.content.pm.PermissionInfo#PROTECTION_SIGNATURE
are granted at install time if requested in the manifest and the signature of your app matches the signature of the app declaring the permissions.
Call #shouldShowRequestPermissionRationale(String)
before calling this API to check if the system recommends to show a rationale UI before asking for a permission.
If your app does not have the requested permissions the user will be presented with UI for accepting them. After the user has accepted or rejected the requested permissions you will receive a callback on #onRequestPermissionsResult(int, String[], int[])
reporting whether the permissions were granted or not.
Note that requesting a permission does not guarantee it will be granted and your app should be able to run without having this permission.
This method may start an activity allowing the user to choose which permissions to grant and which to reject. Hence, you should be prepared that your activity may be paused and resumed. Further, granting some permissions may require a restart of you application. In such a case, the system will recreate the activity stack before delivering the result to #onRequestPermissionsResult(int, String[], int[])
.
When checking whether you have a permission you should use android.content.Context#checkSelfPermission(String)
.
Calling this API for permissions already granted to your app would show UI to the user to decide whether the app can still hold these permissions. This can be useful if the way your app uses data guarded by the permissions changes significantly.
You cannot request a permission if your activity sets android.R.styleable#AndroidManifestActivity_noHistory noHistory
to true
because in this case the activity would not receive result callbacks including #onRequestPermissionsResult(int, String[], int[])
.
Java documentation for android.app.Fragment.requestPermissions(java.lang.String[], int)
.
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.