【发布时间】:2020-02-09 11:12:59
【问题描述】:
我正在尝试创建一个监控电池电量的应用,但由于实时测试会非常麻烦,我想通过模拟器模拟不同的值和充电状态。
当我通过单击工具栏上的“...”进入模拟器设置 GUI,然后转到“电池”并更改值时,它在模拟器中不起作用。操作系统的电池指示灯始终显示电池电量为 100% 等。
在研究过程中,我发现了另外两种更改电池状态的方法:
通过 telnet 和 adb。 Telnet 匹配在模拟器设置 GUI 中设置的值,反之亦然,但不会更改系统中的实际值。电池状态指示器和使用batteryStatus.getIntExtra 等获取值均不受影响。
只有使用adb shell dumpsys battery set level 20 才能达到预期效果。
为什么? telnet 和设置中的控件实际上会发生什么变化?有什么方法可以使设置真正起作用,以便我可以通过模拟器设置 GUI 更改电池电量和状态?
我在 Windows 10 上使用 Android Studio 3.5.3 及其附带的模拟器,版本为 29.3.4-6110076,API 29。
【问题讨论】:
-
我认为对于 Windows 10,您需要使用 PuTTY。 chiark.greenend.org.uk/~sgtatham/putty/download.html
-
另外,你在 telnetting 到模拟器时得到什么消息?
-
我通过“添加/删除 Windows 功能”安装了对 Windows 10 的 telnet 支持。打开 cmd.exe 并远程登录后,我得到“auth required”,所以我输入“auth
”,然后我得到“OK”,当我输入“power capacity 50”时,我也得到“OK”。但我什至不关心 telnet,我希望能够通过模拟器设置 GUI 更改电池状态,这不起作用,它只能通过 adb shell 工作。还尝试了 PuTTY,在“auth ”之后显示“KO: Forbidden binary request. Aborting”
标签: android android-studio android-emulator battery