2015-04-17 3 views
0

Я хочу определить, является ли установленное приложение системным приложением или нет.Как определить, является ли приложение системным приложением или нет?

Так что я получил список установленных приложений, как это: enter image description here

И хочу, чтобы изменить цвет фона всех приложений, которые системные приложения.

Вот соответствующая часть моего кода:

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); 


} 

Есть ли возможность сделать это?

Большое спасибо.

ответ

2

В течение цикла проверьте, является ли приложение системным приложением или нет, и при необходимости отрегулируйте цвет.

Вы можете проверить системные приложения с помощью следующего кода:

for (ApplicationInfo packageInfo : packages) { 
    if ((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) { 
     //is system app 
    } 
} 

Узнайте больше о различных флагах in the ApplicationInfo documentation.

1

Я думаю, что это правильное решение и отображает все системные приложения для меня:

for (ApplicationInfo packageInfo : packages) { 
    if ((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) { 
     System.out.println(packageInfo.packageName + "is a system application"); 
    } 
} 
Смежные вопросы