android - com.google.android.things.contrib.driver.button.Button 与 android.widget.Button

标签 android android-things

我是 Java/Android 新手。我正在尝试使用来自 android.widget.Button 和 com.google.android.things.contrib.driver.button.Button 的屏幕“按钮”从硬件和视觉按钮获取输入。由于名称相同,Android Studio 不允许导入这两个包。我使用这些直接命名。

mButtonInputDriver = new ButtonInputDriver(BoardDefaults.getGPIOForButton(),com.google.android.things.contrib.driver.button.Button.LogicState.PRESSED_WHEN_LOW, KeyEvent.KEYCODE_SPACE);
mButtonInputDriver.register();

他们仍然被称为一体。 IE; HW 按钮和当前 Activity 屏幕按钮的点击被视为一次。如何将这两者分开?

最佳答案

如果您不希望硬件按钮进入 Android 的正常按钮机制(即 InputDriver 功能)。那么你应该直接使用 Button 库:

mButton = new Button(gpioPinName,
        Button.LogicState.PRESSED_WHEN_LOw
);
mButton.setOnButtonEventListener(new OnButtonEventListener() {
    @Override
    public void onButtonEvent(Button button, boolean pressed) {
        // do something awesome when the Hardware button is pressed only
    }
});

https://github.com/androidthings/contrib-drivers/tree/master/button

(而不是使用 ButtonInputDriver 向系统注册)

关于android - com.google.android.things.contrib.driver.button.Button 与 android.widget.Button,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45647453/

相关文章:

java - 如何在 Android Studio 项目中添加和使用 AAR

android - 如何更新firebase实时数据库中特定子节点的值?

android - 如何在 android onTouchEvent 中使用注释突出显示文本?

android - 如果应用程序已经在运行,它会启动吗?

java - 通过 Intent 发送非常大的列表

Android Things - 无法使用 Awareness API

adb - Android Things 的内部版本号/指纹

android - 如何在 Raspberry Pi 3 上运行的 Android Things 中设置静态 IP

Android Things 3 无法从 Raspberry PI 3 上的 rxtx 读取

raspberry-pi3 - W/PackageManager : Not granting permission android. 权限。CAMERA 打包<我的包名称>,因为它之前安装时没有