问题标签 [android-storage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
131 浏览

android - 为什么Android允许未经许可读取文件?

在我的应用程序中,我编写了以下代码来访问文件:

onActivityResult我收到Uri所选图像时。

为什么我可以在Uri没有READ_EXTERNAL_STORAGE权限的情况下访问?

minSdk = 19

compileSdk = 27

targetSdk = 27

测试安卓版本:

Android 4.4.2 API 19

Android 6.0.1 API 23

0 投票
1 回答
1338 浏览

android - 如何通过MediaStore从getExternalFilesDir路径中查询所有图片

我正在按照 Google 官方文档编写相机和图库应用程序。问题在于它主要关注如何拍照以及如何将其保存在内存中。我通过 getExternalFilesDir() 将它们保存在应用程序外部存储器中。

我现在要做的是通过 MediaStore 简单地查询保存拍摄照片的目录,以便在回收站视图中显示其中的所有图片。但我似乎无法在任何地方找到有关如何进行检索的解释。Uri 出了点问题,我可能不太了解,也不知道怎么解决。即使在这里https://developer.android.com/training/data-storage/files#PrivateFiles文章也只讨论了在各种存储选项中保存文件,而不是检索它们。

这是我如何保存文件的代码:

这是实际发送意图的函数(然后 onActivityResult 处理返回的数据):

这是我试图获取有关所拍摄照片的信息的代码:

看起来尝试将 getExternalFileDir() 的路径转换为 ​​Uri 不起作用。光标为空。但是 MediaStore 只有 MediaStore.Images.Media.EXTERNAL_CONTENT_URI 并且不适合查询整个设备内存,而我只需要我的应用程序保存拍摄的图片的特定目录。我错过了什么?不可能那么难吧?

0 投票
3 回答
189 浏览

android - Lollipop vs Nougat Runtime 目录权限到外部存储文件夹

我的代码在 Lollipop 设备中运行良好,但在 Nougat 中没有执行任何操作

这个块在棒棒糖中运行良好,但在牛轧糖中没有,请帮助我进行真正的更改或添加。

0 投票
1 回答
387 浏览

android - 无法在 Android P 中写入文件

我无法在 Android P 存储卡中写入文件。相同的代码在 Android O 中运行良好。

我可以从同一设备(存储卡)读取文件,但是当我尝试写入文件时,它会抛出Permission Denied异常。

最初它向我抛出No such file or Directory,但在授予 root 权限后,它抛出 Permission Deniod 异常。

注意:我的应用程序是系统特权应用程序,并且我已通过 adb root 授予 Devicewith root 权限,检查了 Android Manifest 文件中的权限,它们看起来很好。

0 投票
0 回答
36 浏览

android - 如何在内部存储中为其他使用 android 的应用程序公开共享文件?

我想在我的内部存储中创建一个 CSV 文件,其他应用程序可以访问该文件。我使用的代码是

上面创建到类中的变量

上面的代码用于在文件不存在时创建文件。当我使用而不是上面的代码时,这段代码对我有用。

但我需要使用 Gmail 应用程序将此文件作为电子邮件附件发送,因此我无法访问该文件,因为上面的行将在私有应用程序文件夹中创建一个文件,外部应用程序无法访问。

0 投票
0 回答
232 浏览

android - 如何使用 webview 从资产中保存文件

我正在使用 webview 制作 android 应用程序。我的页面一切正常,但我希望用户可以从页面保存一些资产文件。我尝试为我的应用程序提供一些许可:

我的 MainActivity.java 有这个代码:

the file don't exist所以,我在资产希望指向我希望用户下载的文件的 html 文件中有一个链接,但是网络总是显示错误,例如

0 投票
1 回答
41 浏览

android - 为什么我看不到 /storage 的内容

如果我们使用 Android API 来获取外部存储目录,我们会得到类似/storage/emulated/0. 如果我在同一文件上运行递归遍历,我会得到列出的所有文件和文件夹的列表。

所以,我想到了运行遍历,/storage认为它会返回所有存在的公共目录。但是,在运行相同的程序时,我会在其中得到一个空文件列表。为了列出文件/文件夹,我使用了 API:File.listFiles()

为什么会发生这种情况?如何获取 Android 上所有存储上所有可公开访问的文件/文件夹的列表?

0 投票
1 回答
190 浏览

android - 如何知道在哪里寻找 android 手机上的媒体目录?

我正在开发一个画廊应用程序,该应用程序需要知道在用户的 android 设备中查找图像/视频的位置。目前,我通过一直到根目录来强制它,专门寻找以“storage”和“sdcard”开头的目录,并在每个子文件夹中搜索包含正确扩展名的文件。

必须有更好的方法在 Android 文件系统中查找媒体目录,不是吗?任何人都可以提出任何替代方案吗?

谢谢!

0 投票
2 回答
5223 浏览

android - 使用 Android 意图打开 PDF 文件

所以这是场景:

我正在从网络下载 PDF 并将其保存在/0/Download/NSIT - Notices/"fileName".pdf

现在像这样发送 Intent:

现在任何 PDF 阅读器(Google Drive PDF Reader、System PDF Viewer)都在说

图片: 在此处输入图像描述

谷歌坐着什么都不做(这就是为什么不包括它的图像)

我在 AsyncTask 中创建文件,但从该 AsyncTask 的 postExecute 打开

日志猫

在此处输入图像描述

以前它是扔的,然后我用这个东西FileUriExposedException修复了。FileProvider问题是我的应用程序下载的 pdf 文件已成功创建,我可以从任何文件管理器(现在是 ES 文件资源管理器)成功打开它,但不能从我的应用程序 :(。我是新手FileProvider。需要帮助!

PS:这也不是我的设备问题。用另外两部具有不同 ROM 和 API >= 23 的手机进行了测试

0 投票
2 回答
507 浏览

android - 从内存中打开 PNG 文件并通过 TCP 套接字发送

我希望将图像从我的 android 设备发送到运行 python 的计算机/树莓派。我已经使用以下代码从我的 Windows 笔记本电脑(运行 java 客户端)实现了通信。

但是,Android 不支持 BufferedImage 库 (java.awt.image)。如何在 android studio 中实现类似的功能以在我的 android 设备上运行,即将我设备内存中的 PNG 文件读取到字节缓冲区中,然后将其发送到服务器 PC。

注意:我的文件的位置类似于以下/storage/emulated/0/Downloads/frog-face_1f438.png