我正在使用 afilechooser 模块从用户设备中选择一个文件。该设备具有内部存储和外部存储。当我从内部存储中选择一个文件时,路径会正确返回,uri 看起来像这样:
Uri =content://com.android.externalstorage.documents/document/primary%3Amyfile.txt
但是,当我从外部 sd 卡中选择文件并且 URI 如下所示时,afilechooser 失败:
Uri = content://com.android.externalstorage.documents/document/3935-6562%3Amyfile.txt
所以我正在查看 afilechooser getPath 方法中的代码,它具有以下条件:
if ("primary".equalsIgnoreCase(type)) {
return Environment.getExternalStorageDirectory() + "/" + split[1];
}
现在我可以看到它没有获取路径,因为它包含“3935-6562”而不是包含主路径现在我可以编写另一个条件来测试它,但我想知道。在这个设备上它是“3935-6562”但是在不同的设备上它仍然是相同的数字吗?如果它们因设备而异,我该如何制作它才能正常工作?此外,如果“3935-6562”在所有设备上都是相同的,我将如何获得它的路径,因为 Environment.getExternalStorageDirectory() 似乎返回的是内部 sd 路径,而不是外部
提前致谢。我还在学习这些东西,所以请尽可能简单。