Есть ли способ определить, используется ли установленное приложение или нет?

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

Например, если я открою WhatsApp, он может обнаружить WhatsApp и выдать мне сообщение «используя WhatsApp».


person Sanjot Singh Hora    schedule 14.07.2018    source источник
comment
Пожалуйста, предоставьте свои усилия!   -  person Ullas Hunka    schedule 14.07.2018
comment
Фоновая служба, которая определяет, открыто ли приложение или нет, например: если в моем приложении я хочу обнаружить Whatsapp всякий раз, когда он открывается пользователем, просто поднимите сообщение.   -  person Sanjot Singh Hora    schedule 18.07.2018


Ответы (1)


Вы не можете обнаружить запуск приложения в Android, но вы можете получить список открытых в данный момент приложений и проверить, открыто ли искомое приложение, используя следующий код:

ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses();

for (int i = 0; i < runningAppProcessInfo.size(); i++) {
  if(runningAppProcessInfo.get(i).processName.equals("com.the.app.you.are.looking.for")) {
    // Do your stuff here.
  }
}

Вы также можете проверить, работает ли приложение на переднем плане, используя этот метод.

public static boolean isForeground(Context ctx, String myPackage){
    ActivityManager manager = (ActivityManager) ctx.getSystemService(ACTIVITY_SERVICE);
    List< ActivityManager.RunningTaskInfo > runningTaskInfo = manager.getRunningTasks(1); 

    ComponentName componentInfo = runningTaskInfo.get(0).topActivity;
    if(componentInfo.getPackageName().equals(myPackage)) {
        return true;
    }       
    return false;
}

этот ответ взят из этого сообщения: Как получить список запущенных приложений?

person Amir Hossein Mirzaei    schedule 14.07.2018
comment
Фоновая служба, которая определяет, открыто ли приложение или нет, например: если в моем приложении я хочу обнаружить Whatsapp всякий раз, когда он открывается пользователем, просто поднимите сообщение. - person Sanjot Singh Hora; 18.07.2018