Android requestPermissions

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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

请求授予此应用程序的权限。这些权限必须在您的清单中被请求,它们不应该被授予您的应用程序,并且它们应该具有保护级别#PROTECTION_DANGEROUS,无论它们是由平台还是第三方应用程序声明的。

 

如果清单中有请求,则在安装时授予正常权限PROTECTION_NORMAL。如果清单中有请求,则在安装时授予签名权限PROTECTION_SIGNATURE,并且您的应用程序的签名与声明权限的应用程序的签名相匹配。

 

如果您的应用程序没有请求的权限,用户将会看到UI来接受它们。在用户接受或拒绝请求的权限之后,无论是否授予权限,您都将收到一个回调报告。您的活动必须实现ActivityCompat。OnRequestPermissionsResultCallback和权限请求的结果将被传递到它的onRequestPermissionsResult(int, String[], int[])方法。

 

请注意,请求权限并不保证它会被授予,您的应用程序应该能够在没有该权限的情况下运行。

 

此方法可以启动一个活动,允许用户选择授予哪些权限和拒绝哪些权限。因此,您应该准备好您的活动可能会暂停并重新开始。此外,授予某些权限可能需要重新启动应用程序。在这种情况下,系统将在将结果交付给onRequestPermissionsResult(int, String[], int[])之前重新创建活动堆栈。

 

当检查您是否有权限时,您应该使用checkSelfPermission(android.content)。背景下,字符串)。

 

调用这个API来获得已经授予应用程序的权限将向用户显示UI,以决定应用程序是否仍然可以持有这些权限。如果您的应用程序使用权限保护的数据的方式发生了显著变化,这将非常有用。

 

如果您的活动在清单中将noHistory设置为true,则不能请求权限,因为在这种情况下,该活动不会接收包括onRequestPermissionsResult(int, String[], int[])在内的结果回调。

 

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.

参见:

 

String [] onRequestPermissionsResult (int, int [])

checkSelfPermission (android.content。情况下,字符串)

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

 

转载于:https://my.oschina.net/u/3358860/blog/3030787

你可能感兴趣的:(Android requestPermissions)