我正在开发一个Android应用程序。有一个要求,如果用户使用 Air Droid、TeamViewer 等应用程序通过 WiFi 远程控制设备,则该应用程序不允许用户使用该应用程序... 在 Android 9 及更低版本中,我可以查询网络统计信息以检测这些应用程序是否正在获取某些端口以启用远程控制。但从 Android 10 开始,Google 不允许应用程序通过拒绝访问 /proc/net 目录来查询网络统计信息:https://developer.android.com/about/versions/10/privacy/changes#proc-net -文件系统
这个需求有替代解决方案吗?
谢谢您的帮助。
我没有查看网络端口,而是测试了一些方法来尝试直接获取 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 上没有返回任何信息。我们无法在最新操作系统(API 29)上观察其他应用程序..我想我需要找出使用统计信息或网络管理器。