1. 程式人生 > >Android鎖屏或滅屏狀態下,快速按兩次音量下鍵實現抓拍功能(1.1Framework層使用廣播形式實現)

Android鎖屏或滅屏狀態下,快速按兩次音量下鍵實現抓拍功能(1.1Framework層使用廣播形式實現)

實現思路:     WindowManagerService迴圈讀取下面按鍵訊息並分發給視窗,在訊息分發前會在PhoneWindowManager.interceptKeyBeforeQueueing方法中進行訊息的過濾。因此該實現方式為在訊息分發前的interceptKeyBeforeQueueing方法中監聽當前按鍵為音量下鍵,如果當前狀態為鎖屏狀態,並按鍵為音量下鍵,且兩次按鍵間隔時間小於800ms時傳送抓拍廣播--"com.bill.snapshot"。 具體實現方式如下: /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("com.bill.snapshot");                   mContext.sendBroadcast(intent);              }           lastTime=System.currentTimeMillis();           }       } ...... }