我正在尝试开发一个需要从外部存储和外部安装的SD卡(如果有的话)读取访问权限的应用程序。但是,似乎在API 21之前没有官方API来访问外部SD卡。从API 21开始,有ACTION_OPEN_DOCUMENT_TREE意图操作。但我需要在我的应用程序中支持API 19。浏览SO,似乎大多数查找sdcards的过程大多是启发式的。我得到的一个想法是使用getExternalFilesDirs(null)[1].getAbsolutePath()
。 documentation说:
返回所有应用程序特定目录的绝对路径 应用程序可以放置的共享/外部存储设备 它拥有的持久文件。这些文件是应用程序的内部文件, 并且通常不会被用户视为媒体。
在我的手机中,返回的路径为:
/storage/9057-287B/Android/data/com.tahsinalsayeed.codeviewer/files
现在我的想法是从Android
开始直到路径结束。其余的是我的外部SDCard路径。在这种情况下,它是/storage/9057-287B
。我想问一下这种方法是否可用于获取外部SD卡,在哪种情况下可能会失败。一种失败的情况是,此方法不会返回文档中提到的USB闪存驱动器。但是应该有安装的SD卡。
摘要:我可以使用getExternalFilesDirs(null)[1].getAbsolutePath()
检索外部SD卡路径吗?在哪些情况下它可能会失败?