Android:检查是否存在可以打开 xps 文件的应用程序

Ali*_*Ali 3 java android android-intent

我有一个需要打开XPS文件的应用程序。我可以使用下面的代码来触发Intent打开文件,但是我想知道是否有办法检查手机上是否有任何应用程序可以处理打开此文件的请求。

这个想法是,如果手机上没有应用程序可以打开XPS文件,我可以提示用户下载一个应用程序来打开 XPS 文件。

    Intent intent = new Intent();
    intent.setAction(android.content.Intent.ACTION_VIEW);
    File file = new File(fileURL.toURI());
    intent.setDataAndType(Uri.fromFile(file), "application/vnd.ms-xpsdocument");
    //intent.setDataAndType(Uri.fromFile(file), "application/*");
    startActivity(intent); 
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Squ*_*onk 5

我从未使用过它,但我认为您可以使用PackageManager.queryIntentActivities(...)

创建Intent通常用于打开 XPS 文件并调用该方法的文件。如果返回的List<ResolveInfo>值为空,则没有为处理 XPS 文件注册的活动。