在安卓Nougat 7.+版本中检测当前正在运行的应用程序。

8

Android团队不断改变他们获取当前运行应用的方法。我能够获取到6.0版本以前的当前运行应用,但我想问,在Nougat 7.0版本中如何获取它们呢? 是否有什么办法可以做到这一点?请指导向解决方案。我已经搜索了很多,但没有找到适当的方法。

谢谢


如何在Android 6.0上获取当前正在运行的应用程序? - hungtdo
这会很有帮助:http://www.programcreek.com/java-api-examples/index.php?api=android.app.usage.UsageStatsManager - Usman Rana
谢谢!我认为我找到了 Android 7+ 的解决方案:https://dev59.com/4mQn5IYBdhLWcg3wn4RS#16691633 - hungtdo
更新:https://stackoverflow.com/questions/41104739/running-adb-comands-within-app-gives-permission-denied 在Android 7上没有办法 :( (不要使用Process运行命令:java.io.IOException: Cannot run program "adb shell ps | grep": error=13, Permission denied) - hungtdo
1个回答

7
简单回答:不行。
详细回答:你无法获取正在运行的进程,但是你可以通过UsageStatsManager(当然需要适当的权限)回顾性地查看正在运行的内容。你无法获取正在运行的进程的原因是Android已经锁定了/proc的权限。

抱歉,名字稍微写错了,正确的链接是 https://developer.android.com/reference/android/app/usage/UsageStatsManager.html。 - Ryan
3
按照这个链接的方法操作:http://www.programcreek.com/java-api-examples/index.php?api=android.app.usage.UsageStatsManager。我成功了。 - Usman Rana
这不是真的。这个应用在 Nougat 上运行得非常完美。https://play.google.com/store/apps/details?id=mobi.infolife.taskmanager - deviant
@deviant,你错了。我尝试打开一个没有服务的游戏。这个应用程序并没有真正地工作。 - hungtdo
1
@Ryan,有一些应用程序,如AppLocker和GalleryLocker,可以在Android 7.0中检测到正在运行的应用程序,你可以在Play商店中找到它们,这意味着通过UsageStatManager肯定是可能的,但问题是如何实现。 - Ravikant Tiwari
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接