Android - 检测何时打开开发者选项或 USB 调试模式

Android - Detect when developer option or USB debugging mode is being turned on

基本上我可以从这里获取数据

import android.provider.Settings;

Settings.System.getString(getContentResolver(), Settings.Global.ADB_ENABLED)

但是我的应用程序需要一个切换侦听器。当应用程序处于前台或后台时 运行 切换设置时,有什么方法可以收听,还是我需要实现后台计时器来手动检查它?


任何解决方法建议的一些附加信息。我正在构建一个 Android 应用程序(使用 Flutter 但问题更通用)如果 运行 root 设备或至少打开 USB 调试模式,它很容易受到数据窃取。如果设备被检测为 root,我已经设法阻止它启动。问题是当应用程序 运行 时,敏感的未加密数据仍然可以通过 ADB 代理查看(我不是黑客,对此了解不多)。我想到的解决方案是在关闭应用程序之前在设备上打开开发人员选项或 USB 调试时进行监听。

创建一个具有此检查的 BaseActivityclass

Settings.System.getString(getContentResolver(), Settings.Global#ADB_ENABLED)

然后在检查为真时终止应用程序。

因为没有 root 权限的设备无法从后台打开调试模式,而其他应用程序在前面 运行,包括通过用户操作,例如通过单击通知栏上的切换按钮,我可以在不使用任何计时器的情况下检查应用程序简历