我使用packagemanager获取应用程序列表
final PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
现在,我想创建一个即时应用程序来执行相同操作。事实证明,即时应用程序的权限与普通应用程序的权限不同。
获得包裹清单的权限是什么? 是否可以请求在即时应用程序内部获取getInstalledApplications所需的权限?
我想获得更多,然后获得带有标志“ android:visibleToInstantApps”的应用,例如“ How to list installed apps from instant app?
更新:
Intent intent = this_pm.getLaunchIntentForPackage("package name");
总是为我的即时应用返回null,似乎我无权启动其他应用。
更新:
我能够遍历“ shareIntent”应用程序并提取一些已安装的软件包名称。它不会提供正常的程序包名称(更像是xxx.xxx.xxx.shareName,它不是“ shareIntent”的预期用途,但要检查是否已安装某个应用程序就足够了。
Intent shareIntent = new Intent( android.content.Intent.ACTION_SEND );
shareIntent.setType( "text/plain" );
shareIntent.putExtra( android.content.Intent.EXTRA_TEXT, message );
List<ResolveInfo> activityList = this_pm.queryIntentActivities( shareIntent, 0 );
ArrayList<String> share_apps = new ArrayList<String>();
for ( final ResolveInfo app : activityList )
{
String share_intent_name = app.activityInfo.name;
}