有什么方法可以检测已安装的应用程序是否正在使用?

时间:2018-07-14 07:33:44

标签: android toast programmatically

我知道我们可以检测到已安装的应用程序,但是有什么方法可以检测到哪个应用程序正在使用或哪个处于空闲/关闭状态?

例如,如果我打开Whatsapp,它可以检测到WhatsApp,并向我发送一条消息“使用WhatsApp”。

1 个答案:

答案 0 :(得分:0)

无法检测到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;
}
  

此回复来自此帖子:   How to get the list of running applications?