Android SD卡问题

时间:2012-10-19 09:22:42

标签: java android xml android-sdcard

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

来自developer.android.com

  

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

也许这是一个问题?

我使用的是LG L5(E610)

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

我的其他问题可能与此issue

有关

非常感谢任何帮助。谢谢。

2 个答案:

答案 0 :(得分:6)

你说:

  

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

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

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

  • 系统一,始终可用,高度安全:您的应用只能访问专门为您准备的一小部分,其他应用无法在那里读取您的数据。
  • 共享的,通常称为公共,外部或“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被删除了。

答案 1 :(得分:0)

解决了问题,是自己的问题。

感谢大家的帮助..