我正在使用此方法打开启动Intent
以在Android上打开文件(我在评论中描述了我的问题):
public static void openFile(Context context, String fileName) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// intent.setType(FileHelper.getMimeType(file)); // this doesn't work for PDF files
// opens Intent but then the chosen application doesn't open the file
intent.setType("application/pdf"); // this works correctly for PDF files
intent.setData(Uri.parse("file://" + getPath(context) + fileName));
context.startActivity(intent);
}
我希望有一个单一方法可以打开任何类型的文件,而不必显式指定MIME类型,这可能吗?
答案 0 :(得分:3)
打开文件需要Mime类型,即我们必须设置数据和类型。您可以使用此功能打开任何文件:
public void openFile(Context ctx,String filepath)
{
Uri ttt = Uri.parse("file://" + filepath);
Intent intent = new Intent(Intent.ACTION_VIEW);
String arr[] = filepath.split("\\.");
MimeTypeMap myMime = MimeTypeMap.getSingleton();
String mimeType = myMime.getMimeTypeFromExtension(arr[arr.length - 1]);
intent.setDataAndType(ttt, mimeType);
ctx.startActivity(intent);
}
但是,没有扩展名的文件会有问题。