Skip to content

Instantly share code, notes, and snippets.

@mikepyts
Last active November 4, 2018 23:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mikepyts/4bb8962d4f56223003acd8ea4939268e to your computer and use it in GitHub Desktop.
Save mikepyts/4bb8962d4f56223003acd8ea4939268e to your computer and use it in GitHub Desktop.
This gist demonstrate how to use user-space input driver to handle button event (Kotlin, Android Things)
package <package_name>
import android.app.Activity
import android.os.Bundle
import android.util.Log
import android.view.KeyEvent
import com.google.android.things.contrib.driver.button.Button
import com.google.android.things.contrib.driver.button.ButtonInputDriver
class InputDriver : Activity() {
//Variables
val TAG = "Input Driver Activity"
val mInputDriver = ButtonInputDriver(<GPOI_pin>, Button.LogicState.PRESSED_WHEN_HIGH, KeyEvent.KEYCODE_0)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Register the driver
mInputDriver.register()
// Set debounce time for the signal
mInputDriver.setDebounceDelay(1)
}
// On key pressed logic
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
if (keyCode == KeyEvent.KEYCODE_0) {
Log.d(TAG, "Key was pressed")
}
return super.onKeyDown(keyCode, event)
}
// On key released logic
override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
if (keyCode == KeyEvent.KEYCODE_0) {
Log.d(TAG, "Key was released")
}
return super.onKeyUp(keyCode, event)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment