如何在服务调用中传递布尔参数

How to pass boolean parameter in service call

所以我一直在使用 Lollipop 中的一些服务(适用于其他服务),并且注意到 adb shell 服务调用 ... 没有布尔数据类型。有谁知道我将如何测试从 adb 接收布尔数据类型的系统服务?

系统服务 (IPowerManager.aidl)

...
boolean setPowerSaveMode(boolean mode); //14th entry
...

所以命令应该是这样的:

$ adb shell service call power 14 __ __

我假设它与传递整数值有关(在 c 中,val>0 == true),但我不确定如何完成此操作。

感谢您的帮助!

i32 0falsei32 1true

$ adb shell service call power 14 i32 1

请确保您没有通过 USB 发送 setPowerSaveMode() 命令 - 设备充电时不会开启省电模式。