2015-04-09 3 views
1

Вот мой сценарий,Как получить «имя процесса» приложений, если оно отличается от «имени пакета»?

Предположим, у меня есть имя пакета некоторых приложений, и в настоящее время я нахожу ли приложение работает, передавая «имяпакета» в следующий метод

boolean isNamedProcessRunning(String packageName){ 
      if (packageName == null) 
       return false; 

      ActivityManager manager = 
       (ActivityManager) context.getSystemService(ACTIVITY_SERVICE); 
      List<RunningAppProcessInfo> processes = manager.getRunningAppProcesses(); 
      for (RunningAppProcessInfo process : processes) 
      { 
        Log.e("", "----> processname "+process.processName); 

       if (packageName.equals(process.processName)) 
       { 
        return true; 
       } 
      } 
      return false; 
      }   

Я знаю, по умолчанию андроид принимает имя пакета в качестве имени процесса. Но если свойство процесса в теге приложения определено в файле манифеста android: process = "com.example.newprocessname", то приложение будет запускаться с этим именем "com.example.newprocessname".

Как справиться с этим сценарием?

ответ

0

Использование:

String arr[] = process.pkgList; 

затем сравните имя пакета с ARR элементов. Он предоставит все пакеты, которые были загружены в процесс (согласно документу).

1

Попробуйте

boolean isNamedProcessRunning(String packageName){ 
    if (packageName == null) 
    return false; 

    ActivityManager manager = 
     (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); 
    List<RunningAppProcessInfo> processes = manager.getRunningAppProcesses(); 
    for (RunningAppProcessInfo process : processes) 
    { 
     for(int i = 0;i < process.pkgList.length; i++){ 
     Log.e("", "----> pkg name "+ i + process.pkgList[i]); 
     if(process.pkgList[i].equals(packageName)) 
      return true; 
     } 

    } 
    return false; 
    }   

 Смежные вопросы

  • Нет связанных вопросов^_^