我有一个有点奇怪的问题:这次一切正常,但我不明白为什么。
AFAIK 可以安装多个 SD 卡。一切都将被挂载到/mnt
目录。(是真的吗?)
在我的设备上只有一张 sd 卡安装到/mnt/sdcard
. 在我的应用程序中,我从中打开文件。我正在使用下一个代码:
private void open() {
// get file extension
String extension = "";
int dotIndex = downloadedFile.lastIndexOf('.');
if (dotIndex != -1) {
extension = downloadedFile.substring(dotIndex + 1, downloadedFile.length());
}
// create an intent
Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
Uri data = Uri.fromFile(new File(downloadedFile));
String type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
if (type == null || type.length() == 0) {
// if there is no acceptable mime type
type = "application/octet-stream";
}
intent.setDataAndType(data, type);
// get the list of the activities which can open the file
List resolvers = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
if (resolvers.isEmpty()) {
(new AlertDialog.Builder(context)
.setMessage(R.string.AttachmentUnknownFileType)
.setNeutralButton(R.string.NeutralButtonText, null)
.create()).show();
} else {
context.startActivity(intent);
}
}
实际上downloadedFile
变量的值类似于file:///sdcard/mydir/myfile.txt
. 但代码有效。为什么?Android如何理解什么/sdcard/...
是相同的/mnt/sdcard/...
?
主要问题:如果将 sd 卡安装到其他目录(例如,/mnt/another-sd/
甚至/media/sd
)会发生什么?如果将安装多个 sd 卡怎么办:android 如何理解使用什么卡?
感谢您的任何帮助!祝你有美好的一天!