问题标签 [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 投票
6 回答
9605 浏览

android - 如何检查外部存储空间的可用性?

您如何检查 SD 卡是否已满,以便您的应用程序可以决定它是否可以继续完成其工作,即写入外部存储或通知用户存储空间已用完。

0 投票
15 回答
46826 浏览

android - Android:外部存储上的 mkdirs()/mkdir() 返回 false

我被这个逼疯了:

输出日志如下所示:

我确保添加正确的权限:

但我不知道为什么它无法创建文件夹。我也mkdir()一步一步使用,但结果是一样的。请帮我。我在谷歌上搜索了很多,并且在这个愚蠢的事情上花了至少 2 天。谢谢你的帮助!!

编辑:

对不起大家!我已经添加<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><application>标签。这是我的错误!不过谢谢大家的回复。

0 投票
2 回答
1952 浏览

android - IllegalArgumentException while reading a video file from External Stroage

I have a problem that I am getting IllegalArgumentException while reading a video file from sdcard. I don't know why? Please suggest me the right solution for the same.

ErrorStack:

Code:

0 投票
2 回答
93 浏览

android - 如何在没有root权限的情况下访问写入的文件?

我有这个代码用于写入和读取文件ZIZI.txt

我在 DDMS 中看到文件位于:\data\data\setup.myProject\files\ZIZI.txt

但是我的手机看不到这个文件(因为我没有root权限)

我想从我的 SD 卡或手机中可以看到的任何文件夹中写入和读取。如何更改此代码?

0 投票
3 回答
2407 浏览

android - Nexus LG 上的外部存储目录是什么

下面的代码片段试图存储一个Gesture对象。

我想知道mGesture存储在哪里?

紧跟上面的代码,作者给出如下代码:

所以我猜mGesture它存储在由path. 但我不知道什么是路径。我试过调试。它给了我类似的东西:“storage/emulated/0/gestures/”。但是我在我的设备上找不到这个目录。顺便说一句,我的设备是nexus 4

0 投票
2 回答
8782 浏览

android - 在外部存储器/SD卡上缓存图像的推荐路径

当我在 Android 文件传输或 Astro 文件管理器中查看我的 sd 卡根目录时,它一团糟,因为应用程序到处都存储文件。

作为开发人员,我们通过缓存图像/文件等来遵循最佳实践,以使我们的应用程序更快,并且我们使用Environment.getExternalStorageDirectory()来获取外部存储的根目录(而不是硬编码 /sdcard)。但是接下来应该怎么做?理想情况下,我们会遵循将缓存文件转储到作为外部存储的开放字段的约定吗?

以下是我从自己的设备/经验中看到的几个选项:

  • /.cache/app_name/
  • /.app_name/
  • /cache/<app_name>/
  • /data/<app_name>/
  • /com.package.name/
  • /app_name/

我目前更喜欢在设备文件管理器中默认隐藏第一个选项。

有谁知道谷歌的推荐或几个流行/大牌应用程序遵循的约定?或原因这是一个坏主意?

0 投票
1 回答
64 浏览

android - 是否有可能挂钩到正在安装的外部存储?

可以从 Android 卸载外部存储。是否可以获得 API 挂钩,以便在新存储可用时调用一些自定义代码?

0 投票
0 回答
225 浏览

android - 来自外部存储的 Android phonegap 闪屏

我可以使用以下代码从我的 phonegap 应用程序中的可绘制文件夹中显示启动画面:

但是,如果我想从 sdcard 或内部存储中加载启动画面的图像怎么办。

因为,我正在使用我的外部存储从服务器加载数据,并且在加载数据之后,我希望该数据中的图像用作启动画面。

在这种情况下我应该使用什么方法或属性,因为我不能直接使用 super.setIntegerProperty(),因为它需要用于启动画面的整数参数,但我所拥有的只是该 sdcard 图像的路径。

此处询问了类似的查询,但答案似乎不适合我。

0 投票
1 回答
504 浏览

android - 在 sd 卡上写入 .3gp 文件

我有存储在 SD 卡中的 .3gp 音频文件。我想将该文件复制到 sd 卡的另一个文件夹中。我已经用谷歌搜索了很多,但没有任何工作想法。如果有人知道,请帮助我。我到目前为止尝试过的代码如下:

这总是创建一个大小为 100 的新文件。在此先感谢...当我调用此 save() 方法时的代码是:

0 投票
3 回答
13601 浏览

java - getExternalCacheDir() 清除数据后返回 null

我有一个简单的应用程序可以访问并将数据写入外部存储。一切正常,直到我转到“设置”->“应用程序”->“应用程序信息”并通过“清除数据”按钮清除数据,然后每次调用都getExternalCacheDir()开始返回 null。

我一直在运行 Android 4.2.2 的 Nexus 7 上进行开发。

我的清单看起来像:

不起作用的代码段:

安装并执行应用程序后的 LogCat:

清除 App Info 设置中的数据后的 LogCat:

清除数据并执行 appgetExternalCacheDir()方法后,即使Environment.getExternalStorageState()返回“mounted”,也会返回 null。有谁知道可能出了什么问题?

编辑

在 Gjordis 的帮助下,我发现清除数据按钮会删除整个应用程序临时目录:

storage/sdcard0/Android/data/com.example.app/cacheAndroid/data

而且我无法通过getExternalCacheDir()或手动再次创建它(尽管我能够在 下创建其他目录storage/sdcard0/Android/data/)。

Android/data/com.example.app在设备重新启动后再次创建,但这不是我正在寻找的解决方案)