android targetsdkversion 23权限,targetSdkVersion 23以下6.0中调用requestPermissions()的问题

当targetSdkVersion低于23时,调用ActivityCompat.requestPermissions()请求权限,即使用户拒绝授权,onRequestPermissionsResult仍会返回PERMISSION_GRANTED。若同意授权,应用会被关闭并重新打开当前Activity,不会调用onRequestPermissionsResult。最佳解决方案是将targetSdkVersion设为23。在Android 6.0中,危险权限在使用时需要单独确认,ContextCompat.checkSelfPermission用于检查权限状态,ActivityCompat.requestPermissions用于请求权限。用户拒绝权限后,应显示理由对话框,并根据shouldShowRequestPermissionRationale决定是否再次请求。同时,不建议一次请求多个权限,除非它们在同一屏幕上一起使用。
摘要由CSDN通过智能技术生成

targetSdkVersion如果是23以下,调用ActivityCompat.requestPermissions(),会弹出权限选择对话框,但是选择拒绝授权,onRequestPermissionsResult中的返回值却是PERMISSION_GRANTED,但选择同意授权,会把应用关闭重新开启当前activity,而不会调用onRequestPermissionsResult中的方法,所以不要在targetSdkVersion设置为23以下,又把complierSdkversion设置为23,这样会出现上述的问题。最好的方式是把targetSdkVersion也设置为23,就可以解决。一切完美运行。

下面是一些对应的解答:

The following are the Marshmallow permissions features every developer should keep in mind.

As you may already know, all permissions are divided into two categories: normal and dangerous. Android 5.1 and older versions display dangerous permissions during installation. If a user denies them an application will not be installed at all. Starting from Android 6.0 dangerous permissions are divided into subcategories (see below), that should be separately confirmed by a user while using an app. You should remember though that if one permis

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值