1

我的应用程序在我的工作中用于进行销售。

这个应用程序可以远程更新自身(不使用 Google play)、更新其数据、发送信息等......

在某些时候,该应用程序会读取大量图像(数百 MB)。为避免下载此数据,每个设备中都包含一个包含所有图像的微型 SD 卡。

要读取 SD 卡中的图像,我使用“ Environment.getExternalStorageDirectory() ”。直到今天一切正常。

但是,新设备是GalaxyTab 7 Plus,它们是非常酷的机器,但是当我使用“ Environment.getExternalStorageDirectory() ”时,我得到了内部 SD路径。平板电脑识别出外部 SD 卡(如“ extSdCard ”),但我不知道如何访问它。

我尝试使用“ vold.fstab ”文件(按照这个问题的答案如何在三星和所有其他设备上获得正确的外部存储?)但我不太信任......我的意思是......这东西有效吗?我检查了具有 android 3.0 的 GalaxyTab 10 和具有 android 4.0 的 GalaxyTab 7 Plus 的vold.fstab,它们完全不同......

所以,简而言之:我总是想要获取外部 SD 卡路径,如果不存在,则获取内部 SD 卡路径(如果存在)。我不能这样做,因为当我使用“Environment.getExternalStorageDirectory()”时,java 不允许我在两者之间进行选择

谢谢!

4

1 回答 1

1

Android SDK,至少到 4.1,不支持多点外部存储的概念。因此,从目录的角度来看,没有记录和支持的方法可以让您访问此辅助卡。

该卡的内容可以MediaStore通过设备制造商添加的专有扩展由 索引。我尝试过的每台具有外部 SD 卡的设备似乎都可以做到这一点。因此,如果有一种方法可以让您以某种方式调整逻辑,而不用担心文件在哪里,而是通过 找到它们MediaStore,这应该可以跨设备工作。

除此之外,根据您链接到的问题的一些答案,您会陷入猜谜游戏。

于 2012-08-22T18:38:50.113 回答