3

`framework/base/services/input/inputreader.cpp' のコードの一部を変更して、マウスの右クリックで戻るようにしました。

case BTN_RIGHT:
    mBtnRight = rawEvent->value;
    break;

case BTN_RIGHT:                       
    mBtnBack = rawEvent->value;
    break;

すべてのマウス イベントを受信して​​います。マウスの右ボタンをクリックすると、モーション イベントとキー イベントを受信して​​いますが、キー イベントをディスパッチできません。

その与えるエラー:


D/InputDispatcher( 1229): dispatchKey - eventTime=1352984476958100000, deviceId=2, source=0x2002, policyFlags=0x42000000, action=0x1, flags=0x0, keyCode=0x4, scanCode=0x0, metaState=0x0, repeatCount=0, downTime=1352984476958100000
D/InputDispatcher( 1229): Waiting for application to become ready for input: AppWindowToken{41294900 token=Token{411c0f90 ActivityRecord{41301e68 com.android.calculator2/.Calculator}}} - Window{413ff3c0 com.android.calculator2/com.android.calculator2.Calculator paused=false}.  Reason: Waiting because the focused window has not finished processing the input events that were previously delivered to it.
D/InputDispatcher( 1229): findFocusedWindow finished: injectionResult=-1, timeSpentWaitingForApplication=0.0ms

Jelly Bean のバグですか?

4

1 に答える 1

2

マウスの右クリックを戻るボタンとして機能させるには、次の変更を行います。それは私のために働いています。

 in function reset(InputDevice* device) {

            replace mBtnRight = device->isKeyPressed(BTN_RIGHT); line to

                    mBtnBack =  device->isKeyPressed(BTN_RIGHT);

             and 
  in function process(const RawEvent* rawEvent) {

              remove  3 lines   case BTN_RIGHT:
                                mBtnRight = rawEvent->value;
                                break;
                     and Add "case BTN_RIGHT:" before case BTN_BACK:" as shown below

                     case BTN_RIGHT:
                     case BTN_BACK:                       
                     mBtnBack = rawEvent->value;
                     break;

/*それが私のために働いているすべてです。*/

于 2013-04-17T10:03:49.507 に答える