제일 먼저 시도해 볼 수 있는 것은 Activity의 dispatchKeyEvent를 이용해 처리하는 겁니다.
override fun dispatchKeyEvent(event: KeyEvent): Boolean {
if (event.action == KeyEvent.ACTION_DOWN) {
when (event.keyCode) {
KeyEvent.KEYCODE_YOUR_REMOTE_BUTTON -> {
performCommonAction()
return true
}
}
}
return super.dispatchKeyEvent(event)
}
액티비티가 여러개라면 BaseActivity 를 만들어서 상속을 받도록 하시면 될 것 같습니다.
다른 접근 방법으로는 BroadcastReceiver를 이용하여 리모트 콘트롤의 입력값이 들어오는 걸 처리할 수 있을 것 같습니다.
class RemoteControlReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val action = intent.action
if (action == "com.example.ACTION_REMOTE_BUTTON") {
performCommonAction(context)
}
}
private fun performCommonAction(context: Context) {
Toast.makeText(context, "Remote button pressed!", Toast.LENGTH_SHORT).show()
}
}