android如何显示'完成动作使用'对话框,即使只有一个应用程序

时间:2012-12-19 13:18:25

标签: android

我的应用程序有一些文档要显示。 该活动有一个按钮:'Open In'。 当我单击此按钮时,某些弹出窗口应显示为“使用完整操作”对话框,以列出支持该文档的应用程序。当我选择适当的应用程序时,只应显示带有该图标的文档。

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

如何使用'对话框始终显示'完整动作?

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();
}

1 个答案:

答案 0 :(得分:1)

您必须使用PackageManagerqueryIntentActivities()中的数据实施自己的“选择器”式对话框(或以对话为主题的活动)。

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