当我尝试通过蓝牙,Dropbox等共享文件时,我遇到了问题。 这是我的代码:
Intent intent = new Intent(Intent.ACTION_SEND);
File file = new File(opt.getPath());
String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(file).toString());
String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
intent.setType(mimetype);
String path = "file://" + file.getAbsolutePath();
intent.putExtra(Intent.EXTRA_STREAM, path);
startActivity(Intent.createChooser(intent, "Choose File"));
例如,当我选择图像时,getFileExtensionFromUrl返回空字符串。 当mimetype正确时(例如application / pdf),我也无法共享文件(我收到消息“Unsupported file type”)。我做错了什么?
更新 我自己部分解决了这个问题。 这是代码:
Intent intent = new Intent(Intent.ACTION_SEND);
File file = new File(opt.getPath());
String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(file.getAbsolutePath());
String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
intent.setType(mimetype);
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
startActivity(Intent.createChooser(intent, "Choose File"));
但getFileExtensionFromUrl函数仍然为视频返回空字符串(测试* .wmv)
更新。使用此代码解决了这个问题:
int dotPos = file.getName().lastIndexOf(".")+1;
String ext = file.getName()。substring(dotPos);
并删除
String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(file.getAbsolutePath());