如何检测 Android 10 设备上正在运行的远程访问应用

Tha*_*ham 5 android

我正在开发一个 Android 应用程序。有一个要求,如果用户使用 Air Droid、TeamViewer 等应用程序通过 WiFi 远程控制设备,则该应用程序不允许用户使用该应用程序...在 Android 9 及更低版本中,我可以查询网络统计信息来检测如果这些应用程序正在获取某些端口以启用远程控制。但从 Android 10 开始,Google 不允许应用程序通过拒绝访问 /proc/net 目录来查询网络统计信息:https://developer.android.com/about/versions/10/privacy/changes#proc-net-文件系统

对于这个要求有替代解决方案吗?

感谢您的帮助。

小智 2

我没有查看网络端口,而是测试了一些方法来尝试直接获取 Android 12 设备上正在运行的应用程序的列表。没能从中得到太多,但它可能会帮助你节省一些时间,以防有人想知道沿着这个方向走......

  • ActivityManager.getRunningTasks():已知可运行至 Android 4.4 (API 19);在 Android 12 上,它仅返回调用应用程序的详细信息。
  • ActivityManager.getRunningAppProcess():已知可运行至 Android 5.1 (API 22);在 Android 12 上,它仅返回调用应用程序的详细信息。
  • /proc通过此库阅读( https://github.com/jaredrummler/AndroidProcesses/):已知可工作至 Android 6.0 (API 23);在 Android 12 上没有返回任何信息。