我有代码列出了所有已安装的应用程序:
final PackageManager pm = getPackageManager();
//get a list of installed apps.
List<ApplicationInfo> packages = pm
.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) {
Log.d("Tag", "Installed package :" + packageInfo.packageName);
}
如何区分系统应用和从市场上安装的应用?我想我想到了搜索&#34; android&#34;的非常规方法。在包名称中,将其标记为系统应用程序。有没有一种传统方式让我只找到第三方(来自Market)的应用程序?
答案 0 :(得分:0)
您可以在检索到的所有软件包上调用getInstallerPackageName()。虽然这可以被篡改,但它应该足以满足您的目的。
您还可以使用以下内容:
List<ApplicationInfo> apps = getPackageManager().getInstalledApplications(0);
for (int i=0; i < apps.size(); i++)
{
if ((apps.get(i).applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0)
{
//System app
}
}