android - 有没有办法检测安装的应用程序是否正在使用?
问题描述
我知道我们可以检测到已安装的应用程序,但有什么方法可以检测到哪个应用程序正在使用或哪个处于空闲/关闭状态?
例如,如果我打开 Whatsapp,它可以检测到 WhatsApp 并向我发送一条“使用 WhatsApp”的消息。
解决方案
您无法在 Android 中检测到 App 启动,但您可以使用以下代码获取当前打开的应用程序列表并检查您要查找的应用程序是否已打开:
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;
}
此回复来自这篇文章: 如何获取正在运行的应用程序列表?
推荐阅读
- r - R Plotly 动画 Gapminder
- python - How to make a string's content appears on screen as we type on keyboard?
- reactjs - React 状态已更新但不会重新渲染
- json - map is not a function rxjs angular
- sql - Error :Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library
- c# - InvalidOperationException:由于提交的列表表单不正确而显示错误
- css - After opening modal the sidebar gets "cut". How to make the height of the sidebar responsive?
- .net - 如何在 Visual Studio 中动态读取 IISExpressSSLPort
- jquery - 在functions.php中获取wordpress帖子ID
- hash - 验证 Smartsheet Webhook API