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

5
我正在开发一款Android应用。有一个要求是,如果用户通过WiFi使用Air Droid、TeamViewer等应用程序远程控制设备,则不允许使用该应用程序。 在Android 9及以下版本中,我可以查询网络统计信息以检测这些应用程序是否获取了某些端口以启用远程控制。但从Android 10开始,Google不再允许应用程序通过拒绝访问/proc/net目录来查询网络统计信息:https://developer.android.com/about/versions/10/privacy/changes#proc-net-filesystem 是否有其他解决方案满足此要求?
谢谢您的帮助。

为什么这不适合你?引用:需要访问此信息的应用,例如 VPN,应使用 NetworkStatsManager 或 ConnectivityManager 类。 - blackapps
使用ConnectivityManager无法帮助识别哪个应用程序正在使用网络。NetworkStatsManager提供了查询应用程序数据使用情况的方法,但它不能精细地测量数据使用情况。它仅在120分钟的桶中提供应用程序的数据使用历史记录。因此,它也无法帮助我解决我的问题。 - Thanh Pham
那些其他应用程序是否使用固定端口? - blackapps
3
你是如何解决这个问题的? - Saran Sankaran
1
有人对此有任何建议吗? - auspicious99
1个回答

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上未返回任何信息。

@SandeshKhutalSaheb,你有更好的答案吗?如果有,请分享你的答案,我们可以考虑延长悬赏时间。 - auspicious99

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