外部存储上应用程序特定文件夹的权限

2023-12-07

有人可以解释一下应用程序特定文件夹的权限吗/Android/data/< package_name>/files/如此处所述http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

目前还不清楚什么时候它对应用程序来说是真正私有的,什么时候它是世界可读的。当启用 USB 大容量存储时,外部存储中的文件(包括应用程序特定文件夹)是否可以被所有人读取?

我尝试使用文件管理器应用程序(ASTRO 文件管理器),我能够查看/打开 SD 卡上应用程序特定文件夹中的文件,这与设置无关Protect USB storage在设置下的开发者选项中。我正在使用运行 4.3 版本 Android 的 Google Nexus 4。

所以当这个文件夹出现时会很混乱/Android/data/appname/files/对于应用程序来说确实是私有的。

thanks.


我们来谈谈 Android 安全性吧?

  1. 您无法在未 root 的设备上访问应用程序的主目录。这将是一个重大的安全漏洞。

  2. 不推荐创建 WORLD_READABLE 文件,并且从 API 中的文本判断,这是“decperacted”表示“已弃用”的情况之一。

  3. 那么 - 您想在应用程序之间传递数据吗?

    A。您可以将文件保留在指定位置以供第二个应用程序获取。但这是一个坏主意。它会浪费用户的存储空间,根本没有安全性,第二个应用程序不会收到有关待更新的通知,并且您无法轻松确定事态。我建议您避免这种方法。尽管如此,我还是在下面的更新部分中进行了一些详细说明。

    b.对于简单的小数据块,我建议您使用Intent/BroadcastReceiver方法.

    C。你可以去内容提供者方法你想以正确的方式做事吗?

    d.你可以去意图/服务方法.

    e.对于真正的 IPC -use AIDL.

UPDATE:

我建议你先阅读谷歌的文章彻底。本文清楚地讨论了在应用程序之间传输大文件的情况。此外,正如您可以清楚地看到的,这些术语相当混乱。

因此,让我们根据 Google 关于该主题的文章来回顾一下您的问题。

内部存储器对于您的应用程序来说是私有的,其他应用程序无法访问。您可以通过以下方式访问其目录结构Context.html#getFilesDir().

请注意:

  1. 当用户卸载应用程序时,此处写入的文件将被删除。

外置储存可以是物理内部(内置存储)或外部(可移动 SD 卡)。这里没有安全模型,文件对全世界都是可见和可访问的。您可以通过以下方式访问外部目录结构Context.html#getExternalFilesDir()。请注意:

  1. 此目录可能会变得无法访问(当用户将设备连接到计算机或取出 SD 卡时)。

  2. 每个设备用户可能有一个单独的目录。

  3. 即使用户卸载应用程序,文件也会保留。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

外部存储上应用程序特定文件夹的权限 的相关文章

  • 如何为ScrollView放置固定图像背景?

    我应该想要滚动视图滚动 而不是背景中的图像 将图像添加到滚动视图框架之前的视图层次结构的较高位置
  • 在 ViewPager Fragments 中使用 Master/Detail 模板(下载链接)

    工作代码 https github com lukeallison ViewPagerMasterDetail https github com lukeallison ViewPagerMasterDetail Android 主 详细流
  • 卸载后 Web 应用程序不显示“添加到主屏幕”

    这是我第一次创建网络应用程序 我设法解决了这个问题 所以我得到了实际的 chrome 提示 将其添加到主屏幕 然后我从手机上卸载了该网络应用程序 因为我想将其展示给我的同事 但是 屏幕上不再出现提示 问题 这是有意为之的行为还是我的应用程序
  • Android 30+ 中的视频捕获意图 - 只有所有者才能与待处理项目交互

    我正在尝试在我的应用程序上捕获视频 它可以在 android API 30 以下运行 但不能在 30 以上运行 似乎在 sdk 30 之后 android 不允许完全读取外部存储 作用域存储 我目前遇到这个错误 java lang Ille
  • 谷歌坐标认证

    当我尝试连接到 Google 坐标时 总是出现异常GoogleAuthException 我拥有 Google 地图协调中心许可证 我确实使用我的包应用程序名称和 SHA1 在 google 控制台中创建了我的客户端 ID 我将权限添加到清
  • android xamarin 中的 reCaptcha

    我想在 Xamarin android 应用程序中实现验证码 我抓住了这个在 Android 中集成 googles reCaptcha 验证 https www c sharpcorner com article how to integ
  • CollapsingToolBarLayout - 状态栏稀松布颜色不改变

    几天前我更新了我的 android studio 并开始使用 CoordinatorLayout 和 CollapsingToolbarLayout 只是尝试一些东西 工具栏稀松布颜色似乎覆盖了状态栏初始颜色和状态栏稀松布颜色 从 xml
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 带有 EditText 和 Spinner 的对话框

    我有一个按钮 单击后会弹出一个对话框 我希望对话框有一个EditText and a Spinner对话框内 我不知道如何设置它的视图 我有一个代码AlertDialog它有效 只是EditText and Spinner我需要将其放入其中
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 原色(有时)变得透明

    我正在使用最新的 SDK 版本 API 21 和支持库 21 0 2 进行开发 并且在尝试实施新的材料设计指南时遇到了麻烦 材料设计说我需要有我的primary color and my accent color并将它们应用到我的应用程序上
  • 如何发布Android .aar源以使Android Studio自动找到它们?

    我正在将库发布到内部 Sonatype Nexus 存储库 Android Studio 有一个功能 可以自动查找通过 gradle 引用的库的正确源 我将 aar 的源代码作为单独的 jar 发布到 Nexus 但 Android Stu
  • Android Studio 0.4.3 Eclipse项目没有gradle

    在此版本之前 在 Android Studio 中按原样打开 Eclipse 项目似乎很容易 无需任何转换 我更喜欢 Android Studio 环境 但我正在开发一个使用 eclipse 作为主要 IDE 的项目 我不想只为这个项目下载
  • 错误:在根项目“projectName”中找不到项目“app”

    我有一个在 Eclipse 中开发的旧应用程序 现在尝试将其迁移到 Android Studio 我更新了库并遵循了基本步骤 现在 我收到此错误 Error Project app not found in root project pro
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 将两个文本视图并排放置在布局中

    我有两个文本视图 需要在布局中并排放置 并且必须遵守两条规则 Textview2 始终需要完整显示 如果布局中没有足够的空间 则必须裁剪 Textview1 例子 文本视图1 文本视图2 Teeeeeeeeeeeeeeeeeextview1
  • Crashlytics 出现 Android Studio 构建错误

    我正在尝试将 CrashLytics 与 Android Studio 和 gradle 一起使用 但出现一个令人困惑的错误 java lang NoSuchMethodError 我的 build gradle 是 buildscript
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 如何使用 SpaCy 中的管道组件修改 spacy.tokens.doc.Doc 令牌

    我正在使用 SpaCy 预处理一些数据 但是 我对如何修改内容感到困惑spacy tokens doc Doc class 例如 这里 npc spacy load pt def pre process text doc gt str ne
  • NSPredicate 子查询语法

    我有一些不友好的字典数组 这些字典数组又包含数据数组 我试图根据传递谓词的任何内部数组来过滤外部数组 我似乎无法创建 NSPredicate 来完成这项工作 我从以下开始 NSPredicate lookupPredicate NSPred
  • SQL-列中的相似数据

    有什么办法可以在列中找到类似的结果 例子 我希望从没有 4 棵绿树的表数据中查询返回 因为没有与绿树相似的数据 但蓝色汽车与蓝色汽车相似 红色娃娃与红色娃娃相似 这个怎么做 我使用微软sql server管理工作室 你可以使用SOUNDEX
  • 如何在 2x2 网格上绘制多个 seaborn catplot?

    我尝试使用 FacetGrid 绘制 2x2 网格 每个子图都是相同数据的猫图 但只是具有不同的 抖动 值 它没有起作用 这是我现在使用的代码 sns catplot x Sex y SidestepDist jitter False da
  • 如何合并 Flex Datagrid 中的单元格?

    有没有办法在数据网格中合并单元格 垂直和 或水平 例如 至少有一种方法可以显示某些数据网格列属于一组 例如 我将采用三列 column1 column2 column3 所有这三个单元格都应分组到行距为 3 的 类别 单元格中 如果您愿意的
  • 在ggmap中对图例顺序进行排序

    如何对 ggmap 中的图例顺序进行排序 我有以下代码 mymap lt ggmap map geom point data mypoints aes x lon y lat colour month alpha 0 5 size 5 我希
  • 如何在特定坐标处将完整的 JTable 组件导出为 pdf

    在我的项目中 我必须以 pdf 格式打印 JTable 组件以及所有自定义项 如边框 颜色等 对于这个要求 我搜索了一下 找到了一个在 pdf 中打印 JTable 的代码 但打印后我发现表格的第一行和第一列的边框丢失了 而且我没有找到在某
  • Rail 4 中的批量分配受保护属性

    我收到错误消息警告 无法批量分配受保护的属性 有一种方法 强参数可以解决问题 但是失败了 我不想做attr accessible title description在每个模型中 我宁愿使用 Strong 参数 我在代码中使用 group p
  • Python 按标签和属性递归对 XML 元素进行排序

    我是 Python 新手 我正在尝试使用一些规则对 XML 进行排序 我的例子
  • 创建图像对象数组

    我正在尝试创建一系列图像对象 但很困难 每个对象将包含一个图像和图像的标题 当我将以下代码粘贴到 Firebug 中进行检查时 它工作正常 实施例1 var imageArray new Array imageArray 0 new Ima
  • 使用 REGEX 用可变长度零填充数字

    我遇到一种情况 客户端输入一个数字 我需要通过在其前面填充一定数量的零来验证该数字 我验证的字段的最大长度是 9 位数字 因此如果客户端输入 123 我需要在其前面填充 6 个零并进行验证 听起来很容易 对吧 好吧 这是最关键的 我对过程的
  • Codeigniter 连接模型中的两个表

    我想在我的模型中加入 2 个表 但它不起作用 这是我现在的模型 function list get id this gt load gt database query this gt db gt get where lists array
  • 如何使用 GET/POST 和 Token key 基于 Ajax 调用 ASP.NET Web API

    我知道如何将 Ajax 与 GET POST 数据一起使用 如下代码所示 但我不知道如何将其与 Token key 一起使用 已获得 Token key read1 click function support cors true ajax
  • C++ 未声明的标识符错误

    我得到一个未声明的标识符错误 我不知道为什么 我什至重写了完整的内容以确保我没有犯错 有人能告诉我为什么会出现这个错误吗 我的文件是 连接 hpp pragma once include LogicSimulator hpp include
  • 如何使用 thymeleaf 递归渲染菜单

    我想使用 ul li 列表呈现 HTML 菜单 我有这个类结构 public class MenuItem private String name private MenuItem parent private List
  • ASP.NET MVC:出现空 ActionLink

    我使用默认路由 因此不需要指定控制器 routes MapRoute Default action id new controller Home action Index id UrlParameter Optional 有了这个 我可以创
  • 在 C 中传递二维指针数组

    对于我的程序 我需要将一个二维指针数组传递给单独文件中的函数 我在下面编写了一个类似语法的文件 include
  • 使用 py2exe 捆绑时导入错误

    我使用 py2exe 捆绑了一个用 python 编写的小脚本 该脚本使用了许多包 其中之一是reportlab 使用 py2exe 捆绑后 我尝试运行可执行文件 但它返回以下错误 C Python26 dist gt DELchek ex
  • 在Python中调用C函数并返回2个值

    我试图弄清楚如何从我在 python 中调用的 C 函数返回 2 个值 我已阅读在线材料并使用 struct 输出这两个变量 当我在同一个 C 文件中调用此函数时 我能够输出变量 然而 当我尝试在 python 中调用它时 它仍然只返回一个
  • 外部存储上应用程序特定文件夹的权限

    有人可以解释一下应用程序特定文件夹的权限吗 Android data lt package name gt files 如此处所述http developer android com guide topics data data stora