android - переменная onKeyDown mFlags - PullRequest
3 голосов
/ 18 августа 2011

У меня есть журнал, который вернулся из события onKeyDown, и флаг показал число 520. Как мне узнать, что это за флаг?Я предполагаю, что его 520 = 512 + 8 = FLAG_TRACKING + FLAG_FROM_SYSTEM

Мне нужно знать наверняка, и я слышал, что это как-то связано с шестнадцатеричным кодом.Как конвертировать и узнать?

ОТ ЖУРНАЛА:

onKeyUp - код ключа: 118 |информация: KeyEvent {action = ACTION_UP code = 118 repeat = 0 meta = 0 scancode = 766 mFlags = 520}

Мне нужно знать, как называются mFlags.

Спасибо.

Ответы [ 3 ]

1 голос
/ 25 августа 2011

Вот полный код:

Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | isCanceled: " + event.isCanceled() + " | info: "  + event.toString());

        if ((event.getFlags() & KeyEvent.FLAG_FROM_SYSTEM) == KeyEvent.FLAG_FROM_SYSTEM)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_FROM_SYSTEM");

        }else {}

        if ((event.getFlags() & KeyEvent.FLAG_TRACKING) == KeyEvent.FLAG_TRACKING)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_TRACKING");
        }else {}



        ///FLAG_WOKE_HERE
        if ((event.getFlags() & KeyEvent.FLAG_WOKE_HERE) == KeyEvent.FLAG_WOKE_HERE)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_WOKE_HERE");
        }else {}


        //FLAG_SOFT_KEYBOARD
        if ((event.getFlags() & KeyEvent.FLAG_SOFT_KEYBOARD) == KeyEvent.FLAG_SOFT_KEYBOARD)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_SOFT_KEYBOARD");
        }else {}

        //FLAG_KEEP_TOUCH_MODE
        if ((event.getFlags() & KeyEvent.FLAG_KEEP_TOUCH_MODE) == KeyEvent.FLAG_KEEP_TOUCH_MODE)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_KEEP_TOUCH_MODE");
        }else {}


        //FLAG_EDITOR_ACTION
        if ((event.getFlags() & KeyEvent.FLAG_EDITOR_ACTION) == KeyEvent.FLAG_EDITOR_ACTION)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_EDITOR_ACTION");
        }else {}


        //FLAG_CANCELED
        if ((event.getFlags() & KeyEvent.FLAG_CANCELED) == KeyEvent.FLAG_CANCELED)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_CANCELED");
        }else {}


        //FLAG_VIRTUAL_HARD_KEY
        if ((event.getFlags() & KeyEvent.FLAG_VIRTUAL_HARD_KEY) == KeyEvent.FLAG_VIRTUAL_HARD_KEY)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_VIRTUAL_HARD_KEY");
        }else {}

        //FLAG_LONG_PRESS
        if ((event.getFlags() & KeyEvent.FLAG_LONG_PRESS) == KeyEvent.FLAG_LONG_PRESS)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_LONG_PRESS");
        }else {}

        //FLAG_CANCELED_LONG_PRESS
        if ((event.getFlags() & KeyEvent.FLAG_CANCELED_LONG_PRESS) == KeyEvent.FLAG_CANCELED_LONG_PRESS)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_CANCELED_LONG_PRESS");
        }else {}
0 голосов
/ 18 августа 2011

Почему бы вам просто не напечатать постоянные значения, когда происходит событие нажатия клавиши

http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_NUMPAD_DOT

0 голосов
/ 18 августа 2011

Вы можете сделать это, чтобы проверить

if (mFlags & FLAG_TRACKING == FLAG_TRACKING)
     // it contains FLAG_TRACKING
if (mFlags & FLAG_FROM_SYSTEM == FLAG_FROM_SYSTEM)
     // its contains FLAG_FROM_SYSTEM flag.
if ... etc...
...