3

我的申请有一些文件要显示。该活动有一个按钮:“打开方式”。当我单击此按钮时,应显示一些弹出窗口,如“使用完成操作”对话框,以列出支持该文档的应用程序。当我选择适当的应用程序时,应该只显示带有该图标的文档。

我使用了以下代码。如果有多个应用程序支持该文档,它工作正常。但是如果只有一个应用程序,文档是直接打开的,不会弹出。

如何始终显示“使用完整操作”对话框?

Intent docViewIntent = new Intent();                
docViewIntent.setAction(Intent.ACTION_VIEW);
File file = new File("/sdcard/docs/myfile.pdf"); 
Uri fileUri = Uri.fromFile(file);
docViewIntent.setDataAndType(fileUri, "application/pdf");
docViewIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try
{
    Intent chooser = Intent.createChooser(docViewIntent, "Choose application");                     
    startActivity(chooser);
} 
catch (ActivityNotFoundException e)
{
    Toast.makeText(this,  "No Application Available to View file", Toast.LENGTH_SHORT).show();
}
4

1 回答 1

1

PackageManager您必须使用来自和的数据来实现自己的“选择器”式对话框(或以对话框为主题的活动)queryIntentActivities()

从 Android 的角度来看,强迫用户点击作为他们唯一选择的选项没有任何价值,这就是为什么在单个匹配活动的情况下会跳过选择器的原因。

于 2012-12-19T13:23:53.430 回答