1. 程式人生 > >多次點選camera鍵或者電源鍵 調起app

多次點選camera鍵或者電源鍵 調起app

當時這個需求是,連續點選camera鍵啟動掃碼app。由於怕和其他app共享一個廣播,所以自己定義了一個廣播

ACTION_CAMERA_BUTTON.DC

掃碼app監聽ACTION_CAMERA_BUTTON.DC這個廣播。
修改檔案

frameworks/base/policy/src/com/android/internal/policy/impl/PhoneFallbackEventHandler.java  
 boolean onKeyDown(int keyCode, KeyEvent event) {
 	 case KeyEvent.KEYCODE_CAMERA: {
 	 //start 
 if(event.getRepeatCount() == 5){
                	Intent intent = new Intent(Intent.ACTION_CAMERA_BUTTON+"DC", null);
                    intent.putExtra(Intent.EXTRA_KEY_EVENT, event);
                    mContext.sendOrderedBroadcastAsUser(intent, UserHandle.CURRENT_OR_SELF,
                            null, null, null, 0, null, null);		
                }
                //end
                else if (event.isLongPress() && dispatcher.isTracking(event)) {
                    dispatcher.performedLongPress(event);
                    mView.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
                    sendCloseSystemWindows();
                    // Broadcast an intent that the Camera button was longpressed
                    Intent intent = new Intent(Intent.ACTION_CAMERA_BUTTON, null);
                    intent.putExtra(Intent.EXTRA_KEY_EVENT, event);
                    mContext.sendOrderedBroadcastAsUser(intent, UserHandle.CURRENT_OR_SELF,
                            null, null, null, 0, null, null);
                }
 }

如果點選次數等於5次就發起廣播給掃碼app