我的应用程序在汽车对接事件上启动,我希望在插入设备时唤醒手机(由系统完成),并解锁屏幕。
这是否可能?
我的应用程序在汽车对接事件上启动,我希望在插入设备时唤醒手机(由系统完成),并解锁屏幕。
这是否可能?
我正在使用此方法将活动提升到顶层
private Window wind;
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
/******block is needed to raise the application if the lock is*********/
wind = this.getWindow();
wind.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD);
wind.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
wind.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON);
/* ^^^^^^^block is needed to raise the application if the lock is*/
}
当使用图案锁或PIN码输入时,我还需要添加以下内容,因为屏幕在不到5秒的时间内就会关闭:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
只有没有启用安全锁(例如图案锁)的手机才能使用FLAG_DISMISS_KEYGUARD
。
如果用户尝试移动到其他地方,FLAG_SHOW_WHEN_LOCKED
只会将您当前的 Activity 置于顶部,他必须解锁屏幕。
或者,您可以在清单中添加权限:
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
并且,在你的活动中创建:
KeyguardManager manager = (KeyguardManager) this.getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock lock = manager.newKeyguardLock("abc");
lock.disableKeyguard();