作为一项安全措施,我想获取未从Play商店安装的应用程序列表。有没有办法做到这一点?
packageManager
包含一个方法 getInstalledApplications
,但我不知道要添加哪些标志才能获取该列表。任何帮助将不胜感激。
编辑:以下是v4_adi答案的代码示例。
public static List<String> getAppsFromUnknownSources(Context context)
{
List<String> apps = new ArrayList<>();
PackageManager packageManager = context.getPackageManager();
List<PackageInfo> packList = packageManager.getInstalledPackages(0);
for (int i = 0; i < packList.size(); i++)
{
PackageInfo packInfo = packList.get(i);
if (packageManager.getInstallerPackageName(packInfo.packageName) == null)
{
apps.add(packInfo.packageName);
}
}
return apps;
}
这是一个不错的开始,但它也返回了许多预装的Android和Samsung应用程序。有没有办法将它们从列表中删除?我只想要未知来源的用户安装应用程序。