早上好
我正在寻找一个解决方案,使用Android Studio -Kotlin列出所有Android软件包/应用程序。我知道在过去,getInstalledApplications
,getInstalledPackages
或queryIntentActivitiesAsUser
等方法用于此任务,但这些方法现在在最新的Android API版本中被弃用。我还尝试读取/data/system/packages.xml
文件来提取所有的com* 包,但我认为这违反了Android安全性。你有什么建议吗?
谢谢
我尝试了这个方法,但它不起作用,因为getInstalledApplications
不再支持。
PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) {
Log.d("TAG", "Installed package :" + packageInfo.packageName);
Log.d("TAG", "Source dir : " + packageInfo.sourceDir);
Log.d("TAG", "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName));
}
2条答案
按热度按时间axr492tv1#
我相信另一个方法(使用对象而不是整数标志)不会被弃用
你试过使用这个方法吗?
我觉得你可以试试
vfh0ocws2#
这样的东西能帮助你吗?:
编辑1:getInstalledPackages已被弃用,您需要用途:getInstalledPackages(int flags)
编辑2:它也被弃用了,所以让我们使用getInstalledPackages(PackageManager.MATCH_ALL)