Android requestPermissions

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
activityActivity: The target activity.

 

permissionsString: 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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值