Android SD卡问题

Rik*_*Rik 7 java xml android android-sdcard

我当前在开发APP和使用外部SD卡时遇到了一些问题.

来自developer.android.com

每个Android兼容设备都支持可用于保存文件的共享"外部存储".这可以是可移动存储介质(例如SD卡)或内部(不可移动)存储.保存到外部存储器的文件是世界可读的,当用户启用USB海量存储器在计算机上传输文件时,可以对其进行修改.

也许这是一个问题?

我正在使用LG L5(E610)

我已经为清单文件添加了正确的权限.

我的另一个问题可能与此问题有关

很感谢任何形式的帮助.谢谢.

pca*_*ans 6

你说:

第一个问题是我检查是否安装了SD卡.即使没有插入SD卡,此函数也会返回true.

我认为你偶然发现需要一些时间来掌握的东西,因为它根本不是明确的.

在Android中你会发现2种内存:

  • 系统一,始终可用,高度安全:您的应用只能访问专用于您的一小部分,而其他应用无法在那里读取您的数据.
  • 共享的,通常称为公共,外部或"sdcard".每个应用程序都具有对所有应用程序的读/写访问权限 但它并不总是可用,因为你可以将它"挂载"在你的计算机上,具有在android中卸载它并因此隐藏它的效果.(但仅限于Android 3.X之前).

您将在野外找到3种设备:

  • 在某些设备上,此共享内存位于设备内部的芯片上.所以名称SD卡是不够的.但是,路径可能是"/ sdcard"
  • 在其他设备上,此共享内存位于您可以删除的真实SD卡上.
  • 在其他一些设备上,这个内存用于芯片上的一部分,而另一部分则放在SD卡上.

基于你所说的我认为你是第三种设备.所以你的物理SD卡会在这种路径中找到:/mnt/sdcard/external_sd/.遗憾的是,这是特定于设备的,我不认为Android API中有一些东西可以获得这条路径.

另外,请记住,自Android 3.X起,我们不再需要"挂载"这个共享内存了.所以你的共享内存将永远存在于Android,因为我们现在正在使用MTP协议.

这就是为什么isExternalStorageAvailable()返回true,即使你的sdcard被删除了.


Rik*_*Rik 0

解决了,是自己的问题。

谢谢大家的帮助..