如何在运行时通过编程找到android外部存储的确切路径? mySound.load(新的URL请求(“file://mnt/sdcard/AnyFolder/YourSound.mp3"));`

如何在运行时通过编程找到android外部存储的确切路径? mySound.load(新的URL请求(“file://mnt/sdcard/AnyFolder/YourSound.mp3"));`,android,Android,我想在运行时检测SD卡的名称,以便将我的应用程序数据存储在外部存储器上 上面的代码行是将mp3存储到用户所需位置的示例 mySound.load(new URLRequest("file://mnt/sdcard/AnyFolder/YourSound.mp3"));`<br/> 在 使用环境。getExternalStorageState()它将提供内部SD装载点的路径,如“/mnt/sdcard”可能您需要: getExternalStorageDirectory() 我还建

我想在运行时检测SD卡的名称,以便将我的应用程序数据存储在外部存储器上

上面的代码行是将mp3存储到用户所需位置的示例

mySound.load(new URLRequest("file://mnt/sdcard/AnyFolder/YourSound.mp3"));`<br/>


使用
环境。getExternalStorageState()
它将提供内部SD装载点的路径,如“/mnt/sdcard”

可能您需要:

getExternalStorageDirectory()
我还建议您避免写入SD卡的根目录。将应用程序数据写入适当的文件夹是一种良好的做法:

File f = new File(Environment.getExternalStorageDirectory() +
    "/" + "yourfilename");

显然,您必须用您的应用程序包(您在Eclipse/Android Studio中创建项目时输入的包)更改“com.example.testapp”。

首先,在Android 4.4+上,您没有对可移动媒体(例如,“external SD”)的写访问权,但该媒体上可能由用户返回的任何位置除外

getExternalFilesDirs()和getExternalCacheDirs()

请参阅Dave Smith对此的出色分析,特别是如果您需要底层细节的话

其次,为了避免有人质疑可移动媒体访问是否是Android SDK的一部分,以下是:

…请记住:在Android 4.4之前,官方Android平台根本不支持SD卡,只有两种特殊情况例外:老式的存储布局,其中外部存储是SD卡(该平台至今仍支持SD卡),安卓3.0还增加了一个小功能,可以扫描更多的SD卡并将其添加到媒体提供商,并允许应用程序以只读方式访问其文件(目前该平台仍支持该功能)

安卓4.4是该平台的第一个版本,实际上 允许应用程序使用SD卡进行存储。有没有接触过他们 在此之前,是通过私有的、不受支持的API实现的。我们现在有一个 平台中相当丰富的API,允许应用程序使用 SD卡以一种受支持的方式,以比以前更好的方式 之前:他们可以免费使用其应用程序特定的存储区域 不需要应用程序中的任何权限,并且可以访问任何其他应用程序 SD卡上的文件,只要它们再次通过文件选择器 无需任何特殊许可

File f = new File(Environment.getExternalStorageDirectory() +
    "/Android/data/com.example.testapp/" + "yourfilename");