我正在用android做一个文件浏览器.因此,我想单击目录以外的任何文件时,都希望得到可以打开它的应用程序的建议,如果没有应用程序,则显示一个目录.我尝试了一些解决方案,但没有任何效果,所以,现在,我只是显示文件不是Toast中的目录
这是代码的一部分:
protected void onListItemClick(ListView l, View v, int position, long id) {
String filename = (String) getListAdapter().getItem(position);
if (path.endsWith(File.separator)) {
filename = path + filename;
} else {
filename = path + File.separator + filename;
}
if (new File(filename).isDirectory()) {
Intent intent = new Intent(this, ListFileActivity.class);
intent.putExtra("path", filename);
startActivity(intent);
} else {
Toast.makeText(this, filename + " is not a directory", Toast.LENGTH_LONG).show();
}
}
解决方法:
Android具有一些内置的Intent Action Type,可帮助您打开或查看特定文件,但是为此,您需要知道要处理的文件类型.
假设如果您使用的文件类型归类为文档类型,
具有特定MIME_TYPE(Android 4.4或更高版本)的ACTION_OPEN_DOCUMENT
或如果您要处理某些媒体文件(音频/视频)
您可以使用,
ACTION_VIEW
要识别特定文件的MIME_TYPE,您可以使用函数
guessContentTypeFromName(字符串URL)Link
或getMimeTypeFromExtension(字符串扩展)Link
标签:android-intent,java,android
来源: https://codeday.me/bug/20191120/2043302.html