Android:如何通过adb操纵屏幕锁定设置?

4
我正在建立一个自动化测试环境,使用安卓模拟器来测试应用程序。这是一个无头设置,其中模拟器在Xvfb下运行,因此无法进行手动交互。
我需要一种以编程方式改变(通过adb或telnet)模拟器上的屏幕锁定设置为从不锁定(相当于在“屏幕锁定”菜单中手动更改设置为“无”),特别是模拟器必须在启动后处于解锁状态。
快照不可行,因为它们必须在更改完成后进行拍摄,并且重用其他AVD的快照是不可取的,因为此设置必须适应新的安卓版本。
换句话说,新AVD的设置必须完全无人值守。
我想知道像这样的东西是否可行,但我还没有弄清楚如何进入“屏幕锁定”子菜单:
adb shell am start -a android.intent.action.MAIN -n com.android.settings/.SecuritySettings

无论如何,有没有更好的方法来实现这个目标?

1个回答

3
我最终弄明白了:

adb -s $SERIAL shell rm -f /data/system/locksettings.db*

这将会移除任何锁屏,并在系统设置中将其设置为“无”。


1
无法在Android 5.1.1上工作。删除了所有locksettings.db文件,但当我重新启动手机时,这些文件会重新出现在该文件夹中,锁屏仍然存在。 - Saik
在删除数据库文件后,您是否在重新启动手机之前清除了所有软件包的数据? - Greşanu Emanuel - Vasile
您还需要删除位于同一目录中的 *.key 文件,@Saik - Izzy
2
我假设你需要一个已经root的设备,对吗? - T3rm1
2
警告:如果您的设备已加密,请勿执行此操作;虽然它仍然可以启动,但无法再进行解密。 - xarantolus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接