Android:使用 Intents 以字节数组表示形式打开文件

标签 android file android-intent

我有点急于打开一个文件,以便 android 可以决定哪个应用程序应该处理这个文件。我的问题是我只有文件作为 Base64 表示,我将其解码为字节数组

现在我想发送一个 Intent 并打开那个文件。我尝试将它保存在内部存储中,并使用 getFilesDir() 给出的 uri 打开文件。这是我的代码

    FileOutputStream fos = openFileOutput(filename, Context.MODE_WORLD_READABLE );
    fos.write((byte[])result);
    fos.close();

    uri = Uri.fromFile(new File(getFilesDir(), filename));

    Intent myIntent = new Intent(Intent.ACTION_VIEW);
    myIntent.setData(uri);
    startActivity(myIntent);

不幸的是,这不起作用。我得到的只是一个 ActivityNotFoundException(即使我尝试打开 *.jpg)

感谢任何输入!

最佳答案

Android 不会尝试根据文件扩展名猜测 MIME 类型。您需要在 Intent 中明确设置 MIME 类型。

关于Android:使用 Intents 以字节数组表示形式打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3422688/

相关文章:

android - Flutter构建因D8而失败:程序类型已存在

android - Intent.ACTION_GET_CONTENT 返回的 Uri 总是在磁盘上的某处,还是可以在任何地方?

java - 是否可以在 Linux 上模拟 Java 中的文件创建异常?

java - 使用 Play Framework 在后台处理大文件

java - Intent 另一个布局的运行时错误

java - 使用位置回调获取位置更新

java - 不幸的是,(应用程序名称)已停止。 eclipse /安卓

javascript 到外部 .js 文件

java - 我在哪里放置 Intent 代码?

android - 从 android 代码启动 libGdx