首页 > 解决方案 > 如何使用按钮调用 Android Things 中的方法

问题描述

每次按下此按钮时,我都需要使用一个按钮来调用方法。按键类型为GPIO

标签: androidandroid-studioandroid-things

解决方案


来自https://developer.android.com/things/sdk/pio/gpio

private val gpioCallback = object : GpioCallback {
        override fun onGpioEdge(gpio: Gpio): Boolean {
            // Read the active low pin state
            if (gpio.value) {
                // Pin is LOW
            } else {
                // Pin is HIGH
            }

            // Continue listening for more interrupts
            return true
        }

        override fun onGpioError(gpio: Gpio, error: Int) {
            Log.w(TAG, "$gpio: Error event $error")
        }
    }

注册回调:

class HomeActivity : Activity() {

        private var gpio: Gpio? = null
        ...

        override fun onStart() {
            super.onStart()

            // Begin listening for interrupt events
            gpio?.registerGpioCallback(gpioCallback)
        }

        override fun onStop() {
            super.onStop()
            // Interrupt events no longer necessary
            gpio?.unregisterGpioCallback(gpioCallback)
        }
    }

不要忘记<uses-permission android:name="com.google.android.things.permission.USE_PERIPHERAL_IO" />在清单中添加权限。


推荐阅读