我希望当用户进入他的汽车时启动我的音乐播放器应用程序。但如果他加载了一个卫星导航(例如谷歌地图),那么我希望我的应用能够在后台运行。
当用户进入汽车时,我已经有代码启动我的应用程序。我想知道的是如何确定某种satnav应用是否在前台。
This question explains how to tell what app is in the foreground.但是根据这些信息,如何在不明确检查包名列表的情况下判断它是satnav还是map应用程序?例如,我可以找出前台应用程序可以听到的意图吗?是否有任何此类意图表明它是一个satnav应用程序?
由于
答案 0 :(得分:1)
我要做的是将手机连接到电脑并监控logcat。启动导航应用程序并查看启动的活动(来自logcat)。记下包裹名称。
然后在您的活动中,当调用onStop时,启动一个服务,该服务检查ActivityManager并查看导航应用程序是否正在运行。