package Ġes . the good code . covid . bluetooth Ċ Ċ import Ġandroid . bluetooth . Bluetooth Adapter Ċ import Ġandroid . bluetooth . Bluetooth Class Ċ import Ġandroid . bluetooth . Bluetooth Device Ċ import Ġandroid . content . Broadcast Receiver Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData ĊĊ Ċ class ĠBluetooth Receiver Ġ: ĠBroadcast Receiver () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġnew Device Address : ĠMutable LiveData < Bluetooth Device > Ġ= ĠMutable LiveData < Bluetooth Device >() ĊĊĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext ?, Ġintent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( intent . action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBluetooth Device . ACTION _ FOUND Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDiscovery Ġhas Ġfound Ġa Ġdevice . ĠGet Ġthe ĠBluetooth Device ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġobject Ġand Ġits Ġinfo Ġfrom Ġthe ĠIntent . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdevice : ĠBluetooth Device Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . get Parcelable Extra ( Bluetooth Device . EXTRA _ DEVICE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdevice Name Ġ= Ġdevice . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdevice Hardware Address Ġ= Ġdevice . address Ġ// ĠMAC Ġaddress ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Device Address . value Ġ= Ġdevice ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBluetooth Adapter . ACTION _ SCAN _ MODE _ CHANGED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmode Ġ= Ġintent . getInt Extra ( Bluetooth Adapter . EXTRA _ SCAN _ MODE , ĠBluetooth Adapter . ERROR ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBluetooth Adapter . SCAN _ MODE _ CONNECT ABLE _ DIS COVER ABLE Ġ-> ĠLog . d (" CO VID ", Ġ" ACTION _ SCAN _ MODE _ CHANGED : ĠDis cover ability ĠEnabled .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBluetooth Adapter . SCAN _ MODE _ CONNECT ABLE Ġ-> ĠLog . d (" CO VID ", Ġ" ACTION _ SCAN _ MODE _ CHANGED : ĠDis cover ability ĠDisabled . ĠAb le Ġto Ġreceive Ġconnections .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBluetooth Adapter . SCAN _ MODE _ NONE Ġ-> ĠLog . d (" CO VID ", Ġ" ACTION _ SCAN _ MODE _ CHANGED : ĠDis cover ability ĠDisabled . ĠNot Ġable Ġto Ġreceive Ġconnections .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBluetooth Adapter . STATE _ CONNECT ING Ġ-> ĠLog . d (" CO VID ", Ġ" ACTION _ SCAN _ MODE _ CHANGED : ĠConnect ing .... ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBluetooth Adapter . STATE _ CONNECTED Ġ-> ĠLog . d (" CO VID ", Ġ" ACTION _ SCAN _ MODE _ CHANGED : ĠConnected .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetData (): ĠLive Data < Bluetooth Device > Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . i (" CO VID ", Ġ" getData Ġnew Device Address Ġ${ new Device Address . value }") ĊĠĠĠĠĠĠĠ Ġreturn Ġnew Device Address ĊĠĠĠ Ġ} Ċ }