代码之家  ›  专栏  ›  技术社区  ›  dthomasen

禁用鼠标光标不活动隐藏

  •  1
  • dthomasen  · 技术社区  · 11 年前

    在Android中使用外部鼠标时的默认行为是在约15秒后隐藏光标/鼠标指针。

    如何禁用此功能,以便始终显示光标?

    我是从AOSP源构建的。

    1 回复  |  直到 11 年前
        1
  •  1
  •   dthomasen    11 年前

    想通了。

    要查找的文件是:

    frameworks/base/services/input/PointerController.cpp
    

    The file on AndroidXRef

    第39行定义了非活动超时(Android 4.2.2):

    static const nsecs_t INACTIVITY_TIMEOUT_DELAY_TIME_NORMAL = 15 * 1000 * 1000000LL; // 15 seconds
    

    用于淡化光标的方法:

    void PointerController::fade(Transition transition) {
        AutoMutex _l(mLock);
    
        // Remove the inactivity timeout, since we are fading now.
        removeInactivityTimeoutLocked();
    
        // Start fading.
        if (transition == TRANSITION_IMMEDIATE) {
            mLocked.pointerFadeDirection = 0;
            mLocked.pointerAlpha = 0.0f;
            updatePointerLocked();
        } else {
            mLocked.pointerFadeDirection = -1;
            startAnimationLocked();
        }
    }
    

    注释了方法中的所有内容,但以下内容除外:

    removeInactivityTimeoutLocked();
    

    因为当不使用非活动超时时,在后台运行它是没有意义的。