需求简介
设备在息屏的状态下,通过特定的物理按键去启动Camera应用。
分析
设备在息屏状态下(系统处于休眠),直接通过startActivity方法去启动应用是无效的。
所以将需求的实现应该分为两步:
1、点亮屏幕(唤醒系统);
2、通过startActivity方法启动App;
1、点亮屏幕
我对这个需求的实现代码是写在frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java 中的。
PowerManager mPowerManager = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
private void lightScreen(String keyName){
if (!mPowerManager.isScreenOn()) {
mPowerManager.wakeUp(SystemClock.uptimeMillis());
}
}
2、通过startActivity方法启动App
需要判断一下设备是否处于锁屏状态,因为不同状态下启动App所用到的action是不同的。