0

我需要在大多数设备中知道 sd 卡路径。我有一些我实际使用的问题:

 Environment.getExternalStorageDirectory();

但是有些手机没有返回正确的路径......我不知道为什么。

检查不同设备和操作系统版本的 SD 卡路径的最佳方法是什么?

4

3 回答 3

3

Android 中没有“sd 卡路径”。

目前Android有内部存储和外部存储之分,仅此而已。Environment.getExternalStorageDirectory();返回外部存储的根。外部存储是否为:

  • 在用于内部存储的板载闪存的同一分区上,或
  • 在板载闪存的单独分区上,或
  • 是一些可移动驱动器,例如 microSD 卡,或者
  • 完全是另一回事

取决于设备制造商。

类似地,如果设备制造商提供额外的数据存储(例如,除了作为板载闪存的一部分的外部存储之外的可移动卡),现在,这些额外的数据存储仅供设备制造商使用。该制造商可以选择记录您如何使用它们,或者制造商可以将这些数据存储与您可以访问的其他内容集成(例如,通过索引和访问多媒体文件MediaStore)。

您可以在有关外部存储的文档中阅读更多相关信息。

因此,根据定义,Environment.getExternalStorageDirectory(); 代表外部存储的“正确路径”。

于 2013-10-08T13:11:19.587 回答
0

我觉得这是最好的...

 Cursor cursor = getContentResolver().query(_uri, new String[] { ndroid.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null);
                      cursor.moveToFirst();
于 2013-10-08T13:20:32.180 回答
0

这始终是最好的方法:

Environment.getExternalStorageDirectory();

您还可以获得所有 Android 设备上的环境变量,如下所示:

String sdcardPath = System.getenv("EXTERNAL_STORAGE");
于 2014-01-28T00:32:37.827 回答