java - 如何在 Android 中为文件创建隐式 Intent

标签 java android

我在外部存储上有一个 XML 文件,我有不同的应用程序可以打开这种文件格式。

我将发送这样的隐式 Intent ,以便找到打开 XML 文件的应用程序:

public static boolean isIntentAvailable(Context context, Intent intent) {
    List<ResolveInfo> list = context.getPackageManager().queryIntentActivities(intent,
            PackageManager.MATCH_DEFAULT_ONLY);
    return !list.isEmpty();
}

这个方法有两个参数。问题是如何为第二个参数创建 intent

我只有我需要打开的文件路径,我试过这种方式:

Intent intent = new Intent(**path to file**);

但它不起作用...我如何才能正确创建此 Intent?

最佳答案

你可以这样做:

File file = new File("path to file");

//checking if the File exists
if (file.exists()) {
    Intent intent = new Intent();

    intent.setAction(Intent.ACTION_VIEW);
    intent.setDataAndType(Uri.fromFile(file), "text/xml");

    //checking if an Activity exists that can handle this Intent
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
}

关于java - 如何在 Android 中为文件创建隐式 Intent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37805923/

相关文章:

Java Web 启动 : How to get rid of the warning icon?

Java创建具有深度空对象的实例

java - Android SQL之类

android - android 插件更新到 2.2.0 后,Ionic 项目将无法构建(或运行)

android - 在 android N 中不推荐使用 InDither

java - 有没有更好的方法来跟踪订阅者的变化?

java - RabbitMQ Consumer 连接到 https 域中的rabbitMQ

android - 如何使用kivy从TextInput写入并保存到文本文件中

android - 如何动态解析键动态变化的json响应

android - 为什么我的 Admob 奖励视频广告一次又一次加载失败?