Android 6.0以后的版本报错:open failed: EACCES (Permission denied)

2024-03-20 18:38

本文主要是介绍Android 6.0以后的版本报错:open failed: EACCES (Permission denied),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

就上篇文章来说遇到的问题,在华为手机7.0上面,保存相册到手机没有任何问题,但是在我的小米手机保存就出现了这个问题

open failed: EACCES (Permission denied)

遇到事情不能慌,先冷静一下

思索再三觉得是没有动态申请但是7.0手机怎么可以呢?抽风啊,

百度一下吧参考这篇博文附上链接
Android 6.0以后的版本报错:open failed: EACCES (Permission denied) - 云+社区 - 腾讯云

于是我就按照上面操作了一番

步骤如下:

1.检查AndroidManifest.xml文件中是否配置了权限 

    <!-- 储存卡的读写权限 --><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

2.是否创建了src/main/res/xml/network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config><base-config cleartextTrafficPermitted="true"><trust-anchors><certificates src="system" /><certificates src="user" /></trust-anchors></base-config>
</network-security-config>

3.针对10.0版本以上有个缓存区需要在AndroidManifest.xml文件的Application中添加
 

 android:requestLegacyExternalStorage="true"

4.看有的博文说需要将compileSdkVersion版本调制27以下(ps:我觉得不可行就没采取)
 

5.动态权限申请

 if (Build.VERSION.SDK_INT >= 23) {if (ActivityCompat.checkSelfPermission(PosterActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) {// 申请一个(或多个)权限,并提供用于回调返回的获取码(用户定义)ActivityCompat.requestPermissions(PosterActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_STATE_CODE);} else {//通知图库更新String savePic = savePic(bitmap);//把获取到的Bitmap对象压缩图片保存到本地中sdcardimg_poster_bg.setImageBitmap(bitmap);//在把获取到的Bitmap对象在imageView中显示出来ToastUtil.showCenterToast("保存图片到相册成功");}} else {//通知图库更新String savePic = savePic(bitmap);//把获取到的Bitmap对象压缩图片保存到本地中sdcardimg_poster_bg.setImageBitmap(bitmap);//在把获取到的Bitmap对象在imageView中显示出来}
其实吧我加上这些之后还是给我提示权限问题,我就有点小慌了,起初我测试没问题打包让测试测,然后老大提出一些布局瑕疵,我就开始改,但是就出现了这个权限问题,改来改去的,最后一顿操作猛如虎,还是没有卵用,百度了好大一波,都是这个几个点,我就开始重启as,clean  甚至rebuild  不一会又好了  我也搞不懂了,其实吧这个点还是有效果的吧

 先这样吧,别的也不多说了

这篇关于Android 6.0以后的版本报错:open failed: EACCES (Permission denied)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/830389

相关文章

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

conda安装GPU版pytorch默认却是cpu版本

《conda安装GPU版pytorch默认却是cpu版本》本文主要介绍了遇到Conda安装PyTorchGPU版本却默认安装CPU的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、问题描述二、网上解决方案罗列【此节为反面方案罗列!!!】三、发现的根本原因[独家]3.1 p

Redis指南及6.2.x版本安装过程

《Redis指南及6.2.x版本安装过程》Redis是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSIC语言编写、支持网络、... 目录概述Redis特点Redis应用场景缓存缓存分布式会话分布式锁社交网络最新列表Redis各版本介绍旧

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

MySQL启动报错:InnoDB表空间丢失问题及解决方法

《MySQL启动报错:InnoDB表空间丢失问题及解决方法》在启动MySQL时,遇到了InnoDB:Tablespace5975wasnotfound,该错误表明MySQL在启动过程中无法找到指定的s... 目录mysql 启动报错:InnoDB 表空间丢失问题及解决方法错误分析解决方案1. 启用 inno

解决Java异常报错:java.nio.channels.UnresolvedAddressException问题

《解决Java异常报错:java.nio.channels.UnresolvedAddressException问题》:本文主要介绍解决Java异常报错:java.nio.channels.Unr... 目录异常含义可能出现的场景1. 错误的 IP 地址格式2. DNS 解析失败3. 未初始化的地址对象解决

Python报错ModuleNotFoundError的10种解决方案

《Python报错ModuleNotFoundError的10种解决方案》在Python开发中,ModuleNotFoundError是最常见的运行时错误之一,通常由模块路径配置错误、依赖缺失或命名冲... 目录一、常见错误场景与原因分析二、10种解决方案与代码示例1. 检查并安装缺失模块2. 动态添加模块