安卓10访问手机相册 有读写权限但是还是访问不到问题解决方案

安卓10访问手机相册 有读写权限但是还是访问不到问题解决方案

原因 安卓10 或者是打包target版本大于等于29的时候。就算有读写sd卡权限,谷歌依旧有限制。

解决方案1:

把target版本调整到 29以下

解决方案2:

修改androidmanifest.xml文件 在 <application 标签里再添加一个属性
android:requestLegacyExternalStorage=“true”

至于为什么target : 29以下可以呢 是因为谷歌默认29以下的 这个属性自动为true
到29开始就要手动填。 坑爹的谷歌!!!

Android 6.0之后,需要动态申请权限才能访问一些敏感的权限,例如读写存储权限。为了获取拍照+本地存储权限,您可以按照以下步骤操作: 1. 在AndroidManifest.xml文件中添加以下权限: ```xml <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" /> ``` 2. 在Android 6.0及以上,您需要动态请求这些权限。在您的Activity中添加以下代码: ```java if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA}, REQUEST_CODE_PERMISSIONS); } ``` 其中,REQUEST_CODE_PERMISSIONS是您自定义的请求码。 3. 在您的Activity中实现onRequestPermissionsResult方法,以处理用户的权限请求响应: ```java @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == REQUEST_CODE_PERMISSIONS) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // 用户已经授权,可以执行相应操作,如拍照等 } } } ``` 在用户授权后,您就可以执行相应的操作,例如拍照并将照片保存到本地存储中了。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值