问题标签 [android-external-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 投票
0 回答
2183 浏览

android - Android:在本机代码中读取外部存储

我一直在尝试将一些内容复制assetsexternal storage我的 Java 代码中,并将目录传递给我的本机C/C++代码以进行读取。但是,问题是,如果no SD card设备上有getExternalFilesDir()返回类似"storage/emulated/0/Android/data/com.example.app/files"的东西,当我传递给native codefopen 和 fread 时,会导致应用程序坠毁。我相信原因是因为目录是人造的或符号链接或类似的东西。但是,即使我stdlib.h function realpath()在传递给本机代码的路径上使用 ,它仍然会崩溃。但是,如果我在路径中手动替换emulated/0/为,突然工作并将其转换为文件存储的实际位置,并且emulated/legacy/realpath()fread()工作正常,没有崩溃。不知何故emulated/legacy/是实际的符号链接,emulated/0/还有别的吗?

问题是我想编写从长远来看可靠的代码,无论 Android 组织外部存储和这些符号链接/虚拟文件系统的方式如何变化。我还希望无论在哪个设备上运行代码都能正常工作(我相信这些模拟目录因设备而异)。

是否有某种方法可以external storage directory在 Java 中获得可以在本机代码中写入和可靠读取的内容,而无需执行此替换旧版黑客操作?

谢谢你能给我的任何帮助。

编辑:调用getPath()getCanonicalPath()并返回所有返回相同getAbsolutePath()的路径。FilegetExternalFilesDir()

0 投票
2 回答
863 浏览

android - 更新包含android外部存储中文件夹名称的listview

我有一个ListView显示所有外部存储文件夹的名称。我想在ListView我的应用程序创建或删除新文件夹时自动刷新或更新。但在我再次打开该布局文件之前,它永远不会自动更新。我正在使用Get Files() 方法获取文件,然后在ListView.com 中查看它们。我现在该怎么办?提前感谢任何帮助我正在使用此代码显示所有文件夹

这是获取文件的方法

0 投票
2 回答
72 浏览

android - 使用外部存储时的 logcat

我的应用程序需要访问外部存储,但如果手机通过电缆连接到 PC,它就不允许这样做。但是如果没有通过电缆连接,我将无法获取 logcat。有什么想法我怎么能看到logcat?

0 投票
1 回答
131 浏览

android - Return a String path for later use

In my application I will be constantly using the DirectoryPath of my storage. In my MAIN I am initially creating the directory I would like to store this in a String to use in other methods such as when I create the actual database, I want it to be created in this path. I have gotten myself twisted up with everyone's recommendations and am returning a boolean value instead. Not sure I will use that value at all.

Here is what I have:

Another problem is that this does not actually create the directory in the SDCARD as I want it. It creates the directory in the /storage/emulated/0/APP/database which I assume is the internal storage likely designated as external. Well that is going to be a problem if this app starts creating a database that is 100mb or more and they do not have the space. How do I get it to the SDCARD?

Please ignore my million comments. I was debugging a NullPointer Error and needed to find out which line specifically was the problem. I will erase them later.

0 投票
1 回答
271 浏览

android - 具有系统权限的android应用程序中的IOException

我正在尝试使用以下代码从 SD 卡写入/读取:

在清单中,我给予以下许可:

但是,在尝试阅读时,出现以下异常:

我正在为我的应用程序系统权限(用于其他需要的任务)提供

当我删除权限时,我可以访问 sdcard。由于某种原因,系统权限与从 sdcard 读取/写入冲突。

有人可以告诉我这背后的原因吗?有没有办法同时管理两者?

0 投票
1 回答
551 浏览

java - Saving to "ExternalStorage" - Processing library

Stackoverflowers,

I am doing a simple project using Android smartphones to create 3D forms. I am using Android Processing to make a simple App.

My code makes a 3D shape and saves it as an .STL file. It works on my laptop and saves the .STL file, but in the App. version, I need it to save to the External storage/SD Card of my phone (HTC Sensation). It does not, because of the way the “save” function (writeSTL) in the Processing library I am using has been written.

I have posted for help here (my code more complete code is here too):

http://forum.processing.org/two/discussion/4809/exporting-geometry-stl-obj-dfx-modelbuilder-and-android

...and Marius Watz who wrote the library says that the writeSTL() code is pretty much standalone and the only thing missing is (or should be) replacing the code creating the output stream, which needs to be modified to work with Android. Basically, this line:

I am not a great programmer in that I can usually get Processing to do what I need to do but no more; this problem has me beaten. I am looking for ideas for the correct code to replace the line:...

...with something “Android-friendly”. Calling getExternalStorageDirectory() should work but I am at a loss to find the correct structure.

The code for the writeSTL function is below.

Any suggestions are gratefully received.

Thank you in advance.

0 投票
1 回答
86 浏览

android - 将数据连续记录到外部存储中的文本文件中

我正在编写一个程序来确定太阳位置然后跟踪它。我需要将影响结果和最终结果的变量记录到外部存储中的文本文件中。我知道我们可以使用OutputStreamandOutputStreamWriter来做到这一点。

但是我遇到了一个问题,我的数据每隔几秒钟就会记录一次。无论如何我可以将我的数据记录到同一个文件但下一行?这意味着如果我有 100k 数据,我的文本文件将有 100k 行记录数据。有可能做到吗?

0 投票
1 回答
612 浏览

android - 将数据记录到外部存储(android)

我面临将外部数据存储到外部文本文件中的问题。我的代码如下,但它总是给我 IOException 案例。我没有看到在目录中创建任何文件。应用程序只是自行关闭,是否可以保持打开状态?为什么?

当我打开录音时,我在 logcat 中得到了这个。

我的最新代码

0 投票
1 回答
214 浏览

android - 如何在手机重启后检查内部存储是否准备就绪?

我正在创建一个应用程序,它允许用户从图库中选择他们的图像并将它们显示为幻灯片。

每当图像丢失、移动或删除时,SQLite 数据库中丢失的图像路径将被自动删除。它确保在删除任何图像路径之前安装了 SD 卡(外部存储)。除了带有内部和外部存储 SWAPPED 的手机外,一切正常。

例如,

我的手机外部存储(SD 卡)被视为内部存储,并且

内部存储被视为外部存储。

因此,每当手机重新启动时,应用程序只会删除 SQLite 数据库中的所有图像路径,因为它认为外部存储已安装,而内部存储(SD 卡)仍在安装,这使得应用程序认为图像不再那里。

无论如何,在手机重启后检查内部存储是否准备就绪?

我已经尝试过 BOOT_COMPLETED,但它似乎根本没有帮助,因为内部存储仍在安装中......

如果有人可以帮助我或指出我正确的方向,将不胜感激。

非常感谢。

0 投票
1 回答
297 浏览

android - 获取 Nexus 4 上的所有图库图片

我正在开发一个简单的画廊应用程序,我在其中搜索包含图像的文件夹,然后显示该特定文件夹的图像。首先我使用Environment.getExternalStorageDirectory()然后递归搜索具有图像的文件夹。它运行良好的模拟器和设备。当我的客户在 Nexus 4 上安装应用程序时,没有加载任何内容。我看过一些帖子说 Nexus 系列没有任何外部 SD 插槽。我没有用于调试的 Nexus 4,客户端也不是技术性的。他可以自行排除故障以找出问题的原因。有人可以在这方面提供帮助吗?我认为问题出在Environment.getExternalStorageDirectory()通话中,不适用于 Nexus。知道如何解决这个问题吗?这是我正在使用的代码片段:

这里是我添加的权限清单:

谢谢!