gpt4 book ai didi

android - 检测特定应用程序(不是我的)何时对用户可见/不可见

转载 作者:行者123 更新时间:2023-11-29 00:45:50 25 4
gpt4 key购买 nike

我目前正在尝试编写一个应用程序,它会在应用程序激活时自动更改某些设置(关闭声音等),并在应用程序不再处于 Activity 状态时恢复到原始设置。

已编辑对不起,我相信我对这个问题的解释很差。我目前正在尝试编写一个应用程序,该应用程序能够检测某个应用程序(例如 youtube 应用程序)何时对用户可见,这意味着用户刚刚启动/导航到 youtube 应用程序。

当我检测到这一点时,我想执行某些设置更改,例如关闭手机的声音(我已经弄清楚了这部分)。然后,当我检测到 YouTube 应用不再对用户可见时,我想将设置恢复到原来的状态。

我想知道的是检测任何应用程序(不是我的应用程序)何时对用户可见/不可见的机制。

有点像应用程序 Tasker 的作用。

我想弄清楚它是如何做到这一点的。似乎没有任何广播接收器会通知应用程序变得活跃。我能想到的一种方法是创建一个不断轮询当前正在运行的任务的服务。但这似乎会带来非常糟糕的性能。

有人可能会建议其他选择吗?

提前致谢

最佳答案

您可能需要正在运行的进程列表并用它做一些事情。
您可以使用以下代码执行此操作:

ActivityManager actMngr = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<RunningAppProcessInfo> runningAppProcesses = actMngr.getRunningAppProcesses();
for (RunningAppProcessInfo pi : runningAppProcesses) {
//Check pi.processName and do your stuff
//also check pi importance - check if process is in foreground or background
if (pi.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
//DO YOUR STUFF
}
}

请注意,要列出进程,您需要 GET_TASKS 权限。
您可以通过将其添加到您的 list 中来做到这一点:

<uses-permission android:name="android.permission.GET_TASKS" />    

关于android - 检测特定应用程序(不是我的)何时对用户可见/不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6423197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com