본문 바로가기

OS/Android

안드로이드 블루투스 연결 및 해제 브로드캐스트 리시버

반응형

음악 관련된 앱들은 블루투스를 연결했을 때와 해제했을 때 소리가 중지되는 것이 일반적이다.

이러한 기능을 개발할 수 있도록 안드로이드에서는 브로드캐스트 리시버에 블루투스 연결 액션이 존재한다.

 

BluetoothDevice.ACTION_ACL_CONNECTED  블루투스에 기기가 연결되었을 때 

BluetoothDevice.ACTION_ACL_DISCONNECTED  블루투스에 기기가 해제되었을 때

 

이외에도 블루투스 관련 액션이 많으므로 필요한 액션이 필요하다면 공식문서에서 찾아보면 된다.

https://developer.android.com/reference/android/bluetooth/BluetoothDevice

 

    class BlueToothConnectReceiver : BroadcastReceiver()
    {
        override fun onReceive(context: Context?, intent: Intent?)
        {
            val action = intent?.action

            instance?.let {

                var nState = it.m_nState

                when(action)
                {
                    BluetoothDevice.ACTION_ACL_CONNECTED ->
                    {

                    }

                    BluetoothDevice.ACTION_ACL_DISCONNECTED ->
                    {
                        when(nState)
                        {
                            Const.PLAY_STATE_PLAY -> it.doStopSound(PlayerMgr.nFromTabPosition)
                        }
                    }
                }
            }
        }

        fun registerReceiver(context: Context?)
        {
            val filter = IntentFilter()
            filter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED)
            filter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED)
            context?.registerReceiver(this, filter)
        }

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

 

반응형