【问题标题】:ontouch() listener on volume control?ontouch() 音量控制监听器?
【发布时间】:2013-05-13 00:16:53
【问题描述】:

我一直在尝试制作一个禁用音量更改的应用。我已经为音量增大和音量减小按钮做了它。但是我意识到按下音量按钮后仍然可以通过触摸屏幕来改变音量.. 我正在考虑禁用音量控制弹出,但这似乎是一个死胡同。然后我想到了ontouchlistener。那么问题是 ontouch 监听器只在我触摸 Activity 时调用,而不是音量控制。

是否可以在音量控制上设置 ontouchlistener? 或者也许有其他想法?哪个都可以

提前致谢:)

【问题讨论】:

    标签: android volume ontouchlistener


    【解决方案1】:

    您无法控制或拦截音量对话框上的触摸事件,因为它是系统 UI 的一部分,而不是您的应用程序。

    您可以使用 WindowManager 在可以使用触摸事件的卷对话框上绘制任意布局,但您必须非常快速地添加和删除它,以便它仅在对话框出现时才存在。如果即使对话框不存在也保持它存在,您将呈现屏幕的该部分不可用。

    通常,此类应用属于 Android 反模式,因为用户应始终控制自己的设备。

    【讨论】:

    • 这听起来很棘手,可能无法在某些速度较慢的设备上运行。谢谢你的回答
    【解决方案2】:

    你可以尝试一件事。要禁用,您可以覆盖音量键的 keyevent,如下所示

    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN
                || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
            return true;
        else
            return false;
    }
    

    【讨论】:

    • 是的,我已经这样做了。但是音量仍然可以通过滑动音量对话框栏调整来改变
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多