Android锁屏或灭屏状态下,高速按两次音量下键实现抓拍功能(1.2Framework层使用startService形式实现)
2017-05-15 16:59
459 查看
如前一篇博文所分析。我们能够使用广播的形式在高速按下两次音量下键的时候发出广播,以方便client进行捕捉。
既然有两种方式能够实现该Issue那么哪种方式是首选呢?
我个人推荐使用启动服务的方式,这种话能够避免多次连续按键导致反复发送广播。而使用服务不会反复启动服务。
详细实现方式例如以下:
/framework/base/policy/src/com/android/policy/impl/PhoneWindowManager.java
private long lastTime=0;
public int interceptKeybeforeQueueing(KeyEvent event,int policyFlags,boolean isScreenOn){
if(event.getKeyCode()==KeyEvent.KEYCODE_VOLUME_DOWN && event.isDwon()){
if(isKeyguardLocked()){
if((System.currentTimeMillis()-lastTime) < 800){
Intent intent=new Intent();
ComponentName component=new ComponentName("com.xxx.xxx", "com.xxx.xxx.SnapshotService");
intent.setComponent(component);
mContext.startService(intent);
}
lastTime=System.currentTimeMillis();
}
}
......
}
既然有两种方式能够实现该Issue那么哪种方式是首选呢?
我个人推荐使用启动服务的方式,这种话能够避免多次连续按键导致反复发送广播。而使用服务不会反复启动服务。
详细实现方式例如以下:
/framework/base/policy/src/com/android/policy/impl/PhoneWindowManager.java
private long lastTime=0;
public int interceptKeybeforeQueueing(KeyEvent event,int policyFlags,boolean isScreenOn){
if(event.getKeyCode()==KeyEvent.KEYCODE_VOLUME_DOWN && event.isDwon()){
if(isKeyguardLocked()){
if((System.currentTimeMillis()-lastTime) < 800){
Intent intent=new Intent();
ComponentName component=new ComponentName("com.xxx.xxx", "com.xxx.xxx.SnapshotService");
intent.setComponent(component);
mContext.startService(intent);
}
lastTime=System.currentTimeMillis();
}
}
......
}
相关文章推荐
- Android锁屏或灭屏状态下,快速按两次音量下键实现抓拍功能(1.2Framework层使用startService形式实现)
- Android锁屏或灭屏状态下,快速按两次音量下键实现抓拍功能(1.2Framework层使用startService形式实现)
- Android锁屏或灭屏状态下,快速按两次音量下键实现抓拍功能(1.1Framework层使用广播形式实现)
- Android锁屏或灭屏状态下,快速按两次音量下键实现抓拍功能(1.1Framework层使用广播形式实现)
- Android锁屏或灭屏状态下,快速按两次音量下键实现抓拍功能(一,Framework层实现)
- Android锁定屏幕或关闭状态-screen,高速按两次音量向下键来实现拍摄功能(1.1Framework在实现的形式层广播)
- Android编程使用Service实现Notification定时发送功能示例
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现ViewPager的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android中使用Service实现后台发送邮件功能实例
- Android使用Fragment来实现ViewPager的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现ViewPager的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- 【转】Android使用Fragment来实现ViewPager的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信