본문 바로가기

OS/Android

안드로이드 헤드셋 연결 브로드캐스트 리시버

반응형

음악 관련 앱들을 보면 이어폰을 뽑았을 때 음악이 중지되는 것이 일반적임.

    class HeadSetConnectReceiver : BroadcastReceiver()
    {
        override fun onReceive(context: Context?, intent: Intent?)
        {
            if(intent?.action == (Intent.ACTION_HEADSET_PLUG))
            {
                var headsetState = intent.getIntExtra("state", -1)
                var headsetName = intent.getStringExtra("name")

                println("YK $headsetState")
                println("YK $headsetName")

                when(headsetState)
                {
                    0 ->
                    {
                        instance?.let {
                            if(it.m_bHeadSetState)
                            {
                                it.doStopSound(PlayerMgr.nFromTabPosition)
                            }
                            it.m_bHeadSetState = false
                        }
                    }

                    1 -> instance?.let { it.m_bHeadSetState = true }
                }
            }
        }

        fun registerReceiver(context: Context?)
        {
            val filter = IntentFilter()
            filter.addAction(Intent.ACTION_HEADSET_PLUG)
            context?.registerReceiver(this, filter)
        }

        fun unregisterReceiver(context: Context)
        {
            context.unregisterReceiver(this)
        }
    }

 

반응형