如何调试多个充电器 plug/unplug 周期?

How can I debug multiple charger plug/unplug cycles?

我需要在用户插入 phone 的充电器时停止然后启动(重新启动)我的 MainService。为此,我有一个所谓的 GodService,它为 ACTION_BATTERY_CHANGED 意图注册一个接收器,然后我在该 BroadcastReceiver 中重新启动 MainService。

如果有必要,我可以 post 代码,但这似乎工作正常,因为,一旦我开始调试,我就会充电,我可以单步执行并看到 MainService 停止并且重新启动。

我的问题是,我怎样才能连续多次测试它(我需要这样做),因为我必须拔下设备,从而停止我的调试会话。我确定一定有一种方法可以调试充电端口移除,但我一定没有使用正确的术语进行搜索。

您实际上可以通过 ADB 模拟 phone 断开和重新连接。这是相关代码:

之前 Android 6+:

断开USB

$ adb shell dumpsys battery set usb 0

重新连接USB

$ adb shell dumpsys battery set usb 1

对于Android 6+:

断开USB

$ adb shell dumpsys battery unplug

重新连接USB

$ adb shell dumpsys battery reset

编辑:

找到一个关于如何模拟不同电池状态的很好的教程。 https://stanfy.com/blog/android-shell-part-1-mocking-battery-status/