android - onKeyDown mFlags 变量

标签 android flags onkeydown

我有一个从 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 的名称是什么。

谢谢。

最佳答案

完整代码如下:

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 {}

关于android - onKeyDown mFlags 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7111851/

相关文章:

java - android 在 Activity/布局之间切换

android - 新的 UNEXPECTED TOP-LEVEL EXCEPTION 。再次出现在《SOF》中。

delphi - 如何为 firemonkey TForm OnKeyDown 事件 : 分配快捷键

delphi - 当鼠标不在FireMonkey应用程序上移动时,Delphi“虽然”性能下降

Android - 如何判断有人按下了 SPINNER 但没有更改其中的可见项目

android - 是否可以使用 Dagger 2.11 现场注入(inject) Recycler View 适配器

C++/WinAPI - 从 DWORD 中删除标志(按位运算符?)

c# - 当在 C# 中调用任何其他方法时,如何自动重置 bool 值?

c++ - 取消设置所有格式标志

javascript - 优化/替换多个条件