我想确定已安装的应用程序是否是系统应用程序。
所以我有一个已安装的应用程序列表,如下所示:
并希望更改所有应用程序的背景颜色,这些应用程序是系统应用程序。
以下是我的代码的相应部分:
private void kindElementTexte () {
// TODO: Bildericons sollen angezeigt werden
ActivityManager manager =
( ActivityManager ) this.getSystemService ( ACTIVITY_SERVICE );
ArrayList< String > kinder = new ArrayList< String > ();
final PackageManager pm = getPackageManager ();
List< ApplicationInfo > packages = pm.getInstalledApplications ( PackageManager.GET_META_DATA );
View inflate = getLayoutInflater(). inflate(R. layout. anwendung_starten_layout, null);
String packetName = null;
for ( ApplicationInfo packageInfo : packages ) {
packetName = packageInfo.packageName;
kinder.add ( packetName );
}
kindElemente.add ( kinder );
}
有机会这样做吗?
非常感谢。
答案 0 :(得分:2)
在for循环中,检查应用程序是否是系统应用程序,并根据需要调整颜色。
您可以使用以下代码检查系统应用程序:
for ( ApplicationInfo packageInfo : packages ) {
if ((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
//is system app
}
}
详细了解不同的旗帜in the ApplicationInfo documentation。
答案 1 :(得分:1)
我认为这是一个有效的解决方案,并为我显示所有系统应用程序:
for (ApplicationInfo packageInfo : packages) {
if ((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
System.out.println(packageInfo.packageName + "is a system application");
}
}