了解SD卡路径Android的最佳方式

我需要在大多数设备中了解SD卡路径。 我实际上使用了一些问题:

Environment.getExternalStorageDirectory(); 

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

哪种方法可以检查不同设备和操作系统版本的Sd卡路径?

Android中没有“SD卡路径”。

目前,Android拥有内部存储和外部存储,就是这样。 Environment.getExternalStorageDirectory(); 返回外部存储的根。 外部存储是否:

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

取决于设备制造商。

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

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

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

我认为这是最好的……

  Cursor cursor = getContentResolver().query(_uri, new String[] { ndroid.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null); cursor.moveToFirst(); 

这始终是最好的方法:

 Environment.getExternalStorageDirectory(); 

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

 String sdcardPath = System.getenv("EXTERNAL_STORAGE");