作为一项安全措施,我想获取未从 Play 商店安装的应用程序列表。有没有办法做到这一点?
The 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 和三星应用程序带来了很大的回报。有什么办法可以将它们从列表中删除吗?我只想要用户安装来自未知来源的应用程序。
以下链接已回答您的问题
PackageManager 类提供 getInstallerPackageName 方法,该方法将告诉您指定的安装包的包名称。侧面加载的应用程序不会包含值。
如何知道应用程序是从 Google Play 安装的还是侧面加载的? https://stackoverflow.com/questions/10809438/how-to-know-an-application-is-installed-from-google-play-or-side-load
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)