当用户插入手机充电器时,我需要停止然后启动(重启)我的MainService。为此,我有一个所谓的GodService,它为ACTION_BATTERY_CHANGED意图注册一个接收器,然后我在该BroadcastReceiver中重新启动MainService。
如果有必要,我可以将代码发布到该代码,但这似乎工作正常,因为,一旦我开始调试我正在充电,我可以单步执行并看到MainService停止并重新启动。
我的问题是,如何连续多次测试(我需要这样做),因为我必须拔掉设备,从而停止我的调试会话。我确定必须有一种方法来调试充电端口的移除,但我不能用正确的术语进行搜索。
答案 0 :(得分:1)
您实际上可以模拟手机断开连接并通过ADB重新连接。以下是相关代码:
在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
修改强>
找到一个很好的tuturial如何模拟不同的电池状态。 https://stanfy.com/blog/android-shell-part-1-mocking-battery-status/