我的屏幕已经死了,我想解锁手机,所以我可以通过Kies访问它来备份我的照片.
我通过Android设备管理器锁定了手机,设置了一个简单的密码(一旦锁定它就希望解锁选项)并尝试了各种方法来解锁它,例如:
adb shell input text 1234
Run Code Online (Sandbox Code Playgroud)
由于我不知道锁屏的样子,我不确定解锁它的正确输入.
我知道手机已打开,并且它响应adb.我也可以通过Eclipse在其上运行应用程序.这是一款搭载Android 5.0的三星Galaxy S5.
我想解锁屏幕并打开它以在事件触发器上显示弹出窗口.我可以使用解锁屏幕
newKeyguardLock = km.newKeyguardLock(HANDSFREE);
newKeyguardLock.disableKeyguard();
Run Code Online (Sandbox Code Playgroud)
对KeyGuardService,但我不能把在屏幕上.我在用
wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, HANDSFREE);
wl.acquire();
Run Code Online (Sandbox Code Playgroud)
但没有成功.屏幕仍然保持关闭状态.我怎样才能做到这一点?
我正在考虑使用隐藏的api在我的应用程序中关闭屏幕.
setScreenState来自https://android.googlesource.com/platform/frameworks/base/+/eclair-release/core/java/android/os/Power.java做我想要的,但它是一个隐藏的API.这是否意味着我不应该使用它?我认为它是一个相当稳定的API.
目前,我将屏幕超时设置为1毫秒,然后在屏幕关闭后重置超时.然而,android忽略1毫秒,而关闭它需要大约3秒,有时它完全忽略它并且不会关闭.
有什么建议?
我正在使用KEYCODE_POWER来打开和关闭我的root电话.波纹管命令用于打开和关闭屏幕两种情况.
adb shell input keyevent KEYCODE_POWER
Run Code Online (Sandbox Code Playgroud)
但是,我想在分开的情况下使用它:打开和关闭.我有两个功能:打开和关闭功能.如果屏幕关闭并且我打开了开启功能,它将打开屏幕.如果屏幕已经打开,则开启功能将不会执行任何操作.否则,如果屏幕打开,我将调用关闭功能,它将关闭.
我试图检查屏幕状态,但它不能很好地工作.实际上,屏幕状态更新与手机处理相比较慢.我也使用其他方式,但这些方式使屏幕唤醒而不睡觉.
final Window win = getWindow();
win.addFlags( WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON );
Run Code Online (Sandbox Code Playgroud)
第二种方式:
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag");
wl.acquire();
Run Code Online (Sandbox Code Playgroud)