【问题标题】:Unplugging the device via ADB: "can't find service"通过 ADB 拔出设备:“找不到服务”
【发布时间】:2016-08-26 09:08:16
【问题描述】:
我必须测试我的应用在打盹模式下的行为。根据the documentation,我首先必须通过在终端输入以下命令让设备认为它已拔出:
$ adb shell dumpsys battery unplug
但是,什么也没发生,它会记录:
找不到服务:电池
我该怎么办?
【问题讨论】:
标签:
android
adb
android-6.0-marshmallow
android-doze
android-doze-and-standby
【解决方案1】:
日志指出没有电池服务(这可能是特定于设备的)。
输入以下命令查找现有的电池相关服务:
$ adb shell service list | grep battery
它会导致这样的事情
$ adb shell service list | grep battery
88 batterymanager: [android.app.IBatteryService]
107 batterystats: [com.android.internal.app.IBatteryStats]
114 batteryproperties: [android.os.IBatteryPropertiesRegistrar]
管理电池是有道理的,你应该使用batterymanager。
$ adb shell dumpsys batterymanager
输出(以防充电的 USB 被插入)
Current Battery Service state:
(UPDATES STOPPED -- use 'reset' to restart)
AC powered: false
USB powered: true
然后,当您键入时
$ adb shell dumpsys batterymanager unplug
再次运行之前的命令,它会输出
Current Battery Service state:
(UPDATES STOPPED -- use 'reset' to restart)
AC powered: false
USB powered: false
这证明您应该使用 batterymanager 服务而不是 battery。