我想打开一个文件,让我们在特定的查看器中说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);
但它只打开应用程序,而不是文件。
答案 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);