使用第三方应用程序的包名称打开文件

时间:2015-12-03 07:00:21

标签: android

我想打开一个文件,让我们在特定的查看器中说xxx.pdf。我正在使用

获取观众的信息
List<ResolveInfo> resolveInfoList = activity.getPackageManager()
                                            .queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);

ResolveInfo为我提供了支持的查看器的完整信息。从那里我得到包裹名称,活动等。

现在我想使用包名启动该文件。我正在尝试使用代码。

Intent supportedAppIntent = packageManager.getLaunchIntentForPackage(packageName);
       supportedAppIntent.setAction(ACTION_VIEW);
       supportedAppIntent.setDataAndType(Uri.fromFile(file), contentType);
       activity.startActivity(supportedAppIntent);

但它只打开应用程序,而不是文件。

1 个答案:

答案 0 :(得分:0)

我找到了答案。缺失的行是intent.setClassName(packageName, className);

className您可以从resolveInfo.activityInfo.name;

获取

以下是完整的代码。

Intent intent = new Intent(ACTION_VIEW);
                intent.setClassName(packageName, classname);
                intent.setDataAndType(Uri.fromFile(file), contentType);
                activity.startActivity(supportedAppIntent);