当前位置: 首页 > news >正文

Android问题笔记四十六:解决open failed: EACCES (Permission denied) 问题

点击跳转专栏=>Unity3D特效百例点击跳转专栏=>案例项目实战源码
点击跳转专栏=>游戏脚本-辅助自动化点击跳转专栏=>Android控件全解手册
点击跳转专栏=>Scratch编程案例点击跳转=>软考全系列
点击跳转=>蓝桥系列点击跳转=>ChatGPT和AIGC

👉关于作者

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎底部卡片私我,交流让学习不再孤单

在这里插入图片描述

👉实践过程

😜问题

Android Q 引入了分区存储的概念
官方解释:以 Android 10(API 级别 29)及更高版本为目标平台的应用
默认情况下被赋予了对外部存储空间的分区访问权限(即分区存储)

分区存储改变了应用在设备的外部存储设备中存储和访问文件的方式。
虽然Android 为对外部存储空间的读写访问定义了以下权限:
READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE。
但是对启用了分区存储方式的平台,访问外部存储也受到了限制。

😜解决

Android 10(API 级别 29)为目标平台,请停用分区存储,继续使用适用于 Android 9 及更低版本的方法来执行此操作。
在清单文件 application节点内添加 requestLegacyExternalStorage属性

android:requestLegacyExternalStorage="true"

Android 11 (API 级别 30)为目标平台后,会强制执行分区存储,系统会忽略 requestLegacyExternalStorage 标记。并且WRITE_EXTERNAL_STORAGE 权限和 WRITE_MEDIA_STORAGE 特许权限将不再提供任何其他访问权限。
但是Android 提供了一种名为“所有文件访问权限”的特殊应用访问权限。在我们的清单文件内添加权限**<MANAGE_EXTERNAL_STORAGE>**
``

  <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>

MANAGE_EXTERNAL_STORAGE权限授予以下访问:
1、对共享存储中的所有文件进行读写访问。
2、访问MediaStore.Files表的内容 。
3、访问USB便携式(OTG)驱动器和SD卡的根目录。
4、访问所有内部存储directories⁠,除了 /Android/data/,/sdcard/Android和大多数子目录 /sdcard/Android。

不过我们最好还是要迁移数据进行分区存储,以便更好地管理自己的文件、减少混乱。这样的话,即使在启用分区存储后,您的应用也可以继续访问这些文件。
需要注意的是从 Android 11 开始,
1、应用无法在外部存储设备上创建自己的应用专用目录。如需访问系统为您的应用提供的目录,请调用 getExternalFilesDirs()。
2、应用不能访问其他任何应用的数据目录中的文件。
3、应用无法再访问外部存储设备中的任何其他应用的专用于特定应用的目录中的文件。

详情请看:
Android 11 中的存储机制更新
Android 存储用例和最佳做法

👉其他

📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

温馨提示点击下方卡片获取更多意想不到的资源。
空名先生

相关文章:

Android问题笔记四十六:解决open failed: EACCES (Permission denied) 问题

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列点击跳转>ChatGPT和AIGC &#x1f449;关于作者 专…...

Universal adversarial perturbations(2017 CVPR)

Universal adversarial perturbations----《普遍对抗扰动》 通俗UAP算法步骤理解&#xff1a;对于 x i ∈ X {x_i} \in X xi​∈X 的每个采样数据点&#xff0c;比较 k ^ ( x i v ) \hat k({x_i} v) k^(xi​v) 与 k ^ ( x i ) \hat k({x_i}) k^(xi​) &#xff0c;如果 k…...

前台查看日志功能

前台 <template><div id="logContent"><div class="onlinlog"><div class="left"><div class="number">显示字符数:<span><el-selectv-model="strNumber"placeholder="50000…...

mysqlbinlog使用记录

首先要确认mysql启用了binlog功能。一般默认启用。 mysql> select log_bin; ----------- | log_bin | ----------- | 1 | ----------- 然后确认binlog目录 mysql> select log_bin_basename; ---------------------------- | log_bin_basename | -----…...

学习c#的第十八天

目录 C# 文件的输入与输出 C# I/O 类 FileStream 类 文本文件的读写 StreamReader 类 StreamWriter 类 实例 二进制文件的读写 BinaryReader 类 BinaryWriter 类 实例 Windows 文件系统的操作 DirectoryInfo 类 FileInfo 类 实例 C# 文件的输入与输出 一个 文件…...

element + vue3,级联选择器实现省市区

由于es6支持哈希&#xff0c;所以数据量只要不太大&#xff0c;就不需要对el-cascader进行点击后在调接口出现下一级&#xff0c;很简单的就是直接获取所有数据。 <template><div><el-cascader :modelValue"modelValue" :props"innerProps"…...

程序员的护城河-并发编程

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&…...

外卖小程序系统:数字化餐饮的编码之道

在当今数字化时代&#xff0c;外卖小程序系统成为了餐饮业的一项技术巨制。这个系统不仅提供了便捷的点餐体验&#xff0c;更通过先进的技术手段&#xff0c;实现了高效订单处理、实时配送追踪以及个性化推荐。让我们深入了解外卖小程序系统的技术魔法&#xff0c;一起揭秘数字…...

单链表相关面试题--1.删除链表中等于给定值 val 的所有节点

/* 解题思路&#xff1a;从头节点开始进行元素删除&#xff0c;每删除一个元素&#xff0c;需要重新链接节点 */ struct ListNode* removeElements(struct ListNode* head, int val) {if(head NULL)return NULL;struct ListNode* cur head;struct ListNode* prev NULL;while…...

一生一芯18——Chisel模板与Chisel工程构建

Chisel模板链接如下&#xff1a; 链接: https://pan.baidu.com/s/1DNDKpz5VnTxPgoZBBOd-Ww?pwdrevg 提取码: revg Chisel转Verilog模板如下&#xff1a; 链接: https://pan.baidu.com/s/1T9JQL5BccxqI4bscfU-JyA?pwd7rw2 提取码: 7rw2 以下使用sbt作为构建工具 Chisel项目构…...

ES6 class类

基本介绍 1. constructor constructor()方法是类的默认方法&#xff0c;通过new命令生成对象实例时&#xff0c;自动调用该方法。 一个类必须有constructor()方法&#xff0c;如果没有显式定义&#xff0c;一个空的constructor()方法会被默认添加。如&#xff1a; class Po…...

Java的IO流-打印流

打印流 PrintStream public void println&#xff08;&#xff09;自动换行 PrintWriter package com.itheima.println;import java.io.FileInputStream; import java.io.PrintStream; import java.io.PrintWriter;public class Test2 {public static void main(String[] arg…...

如何使用$APPEALS法,分析用户期待?

$APPEALS分析法是一种用于分析用户期待和需求的方法&#xff0c;它可以帮助企业全方位多角度地了解客户对产品的期望&#xff0c;有助于企业多维度有侧重地调整市场规划和产品改进策略&#xff0c;帮助企业打造优势产品&#xff0c;提高市场竞争力。 下面是使用$APPEALS分析法来…...

南京工程学院数据结构考试纲要

...

C++中将 sizeof() 用于类

C中将 sizeof() 用于类 您知道&#xff0c;通过使用关键字 class 声明自定义类型&#xff0c;可封装数据属性和使用数据的方法。运算符 sizeof( )用于确定指定类型需要多少内存&#xff0c;单位为字节。这个运算符也可用于类&#xff0c;在这种情况下&#xff0c;它将指出类声…...

Android studio访问选程https接口(.crt handshake)

如果服务器是https的&#xff0c;访问受限怎么办&#xff1f;有两种方法&#xff0c;一种是接受一切证书个人官方正式非正式&#xff0c;当然这样就牺牲了安全性&#xff0c;网上方法很多&#xff0c;我现在教大家如何去验证crt文件 首先服务器是https的&#xff0c;必然有几个…...

设计模式(一)-设计原则(1)

六大设计原则 1、单一职责原则 特点&#xff1a; 类和方法属性等&#xff0c;都应当遵守单一职责。尽可能保持统一性&#xff0c;单一性。 含义&#xff1a; &#xff08;1&#xff09;统一性&#xff0c;定义一个模块就必须要符合所有对象的行为特征。比如声明一个 Animal 类…...

Linux|僵死进程

1.僵死进程产生的原因或者条件: 什么是僵死进程? 当子进程先于父进程结束,父进程没有获取子进程的退出码,此时子进程变成僵死进程. 简而言之,就是子进程先结束,并且父进程没有获取它的退出码; 那么僵死进程产生的原因或者条件就是:子进程先于父进程结束,并且父进程没有获取…...

JDY蓝牙注意事项

波特率设置&#xff1a;9600&#xff0c;不接受115200&#xff0c;或者38400. 不同于WiFi测试&#xff0c;jdy蓝牙不接受AT"指令&#xff0c;可以使用“ATVERSION"指令测试 安信可公司的那个蓝牙指令在这里没有用&#xff0c;不知道是不是生产的公司不一样...

服务器IPMI管理操作

简介&#xff1a;智能平台管理界面&#xff08;IPMI&#xff0c;Intelligent Platform Management Interface)是管理基于 Intel 结构的企业系统中所使用的外围设备采用的一种工业标准&#xff0c;用户可以利用IPMI监视服务器的物理健康特征&#xff0c;如温度、电压、风扇工作状…...

2026年必看:Trae对比Claude Code详细评测,热门AI编程工具横评

2026年必看&#xff1a;Trae对比Claude Code详细评测&#xff0c;热门AI编程工具横评 AI编程工具已从辅助插件演进为全流程开发核心引擎&#xff0c;2026年各类产品迭代加速&#xff0c;既有贴合本土开发者的创新工具&#xff0c;也有海外深耕多年的成熟产品。本次聚焦Trae&am…...

Win11Debloat:彻底解放Windows性能的智能优化革命

Win11Debloat&#xff1a;彻底解放Windows性能的智能优化革命 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and custom…...

告别手速焦虑:大麦抢票自动化系统全攻略

告别手速焦虑&#xff1a;大麦抢票自动化系统全攻略 【免费下载链接】ticket-purchase 大麦自动抢票&#xff0c;支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到演唱会门票而烦恼吗&#xff1f;每…...

Ventoy终极指南:一键制作万能启动盘的完整教程

Ventoy终极指南&#xff1a;一键制作万能启动盘的完整教程 【免费下载链接】Ventoy A new bootable USB solution. 项目地址: https://gitcode.com/GitHub_Trending/ve/Ventoy 你是否厌倦了每次安装系统都要重新格式化U盘&#xff1f;Ventoy是一款革命性的开源启动盘制作…...

重尾分布采样的SMTM算法:原理与实践

1. 重尾分布采样的挑战与MCMC方法演进 在贝叶斯统计和统计物理领域&#xff0c;我们经常需要从复杂的概率分布中采样。想象一下&#xff0c;你手里有一袋形状各异的糖果&#xff08;代表数据点&#xff09;&#xff0c;但袋子是不透明的&#xff0c;你只能通过摸取来了解糖果的…...

新唐NuEzAI-M55M1开发板:基于Cortex-M55与Ethos-U55的终端AI部署实战

1. 项目概述&#xff1a;当AI遇见微控制器&#xff0c;一场边缘计算的“瘦身革命” 最近&#xff0c;新唐科技&#xff08;Nuvoton&#xff09;发布了一款名为NuEzAI-M55M1的开发板&#xff0c;在嵌入式圈子和AI应用开发者中激起了不小的水花。这玩意儿乍一看&#xff0c;又是一…...

一部95分钟AI电影杀进戛纳后,影视行业开始不淡定了

作者&#xff1a;王聪彬今年戛纳电影节的C位&#xff0c;不是红毯&#xff0c;不是明星&#xff0c;也不是哪位导演的新片&#xff0c;AI把C位抢了。8支由火山引擎视频生成大模型Seedance 2.0创作的AI影片&#xff0c;第一次正式登上戛纳舞台。过去代表全球电影工业最高门槛的戛…...

DDrawCompat终极指南:3步让老游戏在现代Windows上完美运行![特殊字符]

DDrawCompat终极指南&#xff1a;3步让老游戏在现代Windows上完美运行&#xff01;&#x1f3ae; 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://git…...

抖音下载神器:如何免费批量下载无水印视频、音乐和图片

抖音下载神器&#xff1a;如何免费批量下载无水印视频、音乐和图片 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback supp…...

欢迎新Buddy:DataBuddy

大数据人自己的原生Agent来了&#xff01;腾讯云大数据智能体工作台DataBuddy正式发布。用户通过自然语言对话&#xff0c;即可完成数据接入、开发、治理、分析全链路任务&#xff0c;不用再在多个页面之间切换操作&#xff0c;一句话说清目标&#xff0c;Agent自己跑完全流程。…...