package Ġcom . hd . bluetooth util . scan Ċ Ċ import Ġandroid . bluetooth . Bluetooth Device Ċ import Ġandroid . os . Build Ċ import Ġandroid . support . annotation . Requires Api Ċ import Ġcom . hd . bluetooth util . callback . B le Bound Status Callback Ċ import Ġcom . hd . bluetooth util . callback . Scanner Callback Ċ import Ġcom . hd . bluetooth util . config . B le Measure Status Ċ import Ġcom . hd . bluetooth util . help . Bound Bluetooth Device Ċ import Ġcom . hd . bluetooth util . utils . BL ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby Ġhd Ġon Ġ 2 0 1 7 / 1 2 / 1 0 Ġ. Ċ Ġ* Ġbluetooth Ġ 2 . 0 Ġdevice Ġscanner Ċ Ġ*/ Ċ @ Requires Api ( Build . VERSION _ CODES . J EL LY _ BE AN _ MR 2 ) Ċ class ĠBluetooth 2 Scanner Ġ: ĠBluetooth Base Scanner () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġstart Scan () Ġ{ ĊĠĠĠĠĠĠĠ Ġstatus Ġ= ĠB le Measure Status . RUNNING ĊĠĠĠĠĠĠĠ Ġsearch Native Device () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstop Scan () Ġ{ ĊĠĠĠĠĠĠĠ Ġcancel Discovery () ĊĠĠĠĠĠĠĠ Ġscan Complete () ĊĠĠĠĠĠĠĠ Ġrelease () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcancel Discovery () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( bluetooth Adapter !!. is Discover ing Ġ&& Ġbluetooth Adapter !!. isEnabled ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbluetooth Adapter !!. cancel Discovery () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġquerying Ġnative Ġdevices Ġthat Ġhave Ġbeen Ġbound Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġsearch Native Device () Ġ{ ĊĠĠĠĠĠĠĠ ĠBL . d (" start Ġsearch Ġnative Ġdevice ") ĊĠĠĠĠĠĠĠ Ġval Ġdevices Ġ= Ġbluetooth Adapter ?. bon ded Devices ĊĠĠĠĠĠĠĠ Ġif Ġ( devices Ġ!= Ġnull Ġ&& Ġdevices . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdevices . filter Ġ{ Ġcontinue Scan () Ġ}. forEach Ġ{ Ġscan Complete ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( continue Scan ()) Ġsearch Near by Device () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Near by Device () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġquerying Ġnearby Ġdevices Ġï¼Į bound Ġdevice Ġif Ġthe Ġdevice Ġis Ġscanned */ ĊĠĠĠ Ġprivate Ġfun Ġsearch Near by Device () Ġ{ ĊĠĠĠĠĠĠĠ ĠBL . d (" start Ġsearch Ġnearby Ġdevice Ġ") ĊĠĠĠĠĠĠĠ ĠBound Bluetooth Device . newInstance ( context !! ) !!. bound Device ( entity !! , Ġobject Ġ: ĠB le Bound Status Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbound Status ( discovery Finished : ĠBoolean , Ġbound Map : ĠLinkedHashMap < Bluetooth Device , ĠBoolean >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( continue Scan ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! discovery Finished ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** Ġmaybe Ġ, target Ġdevice Ġbound Ġcomplete */ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbound Map . filter Ġ{ Ġcontinue Scan () Ġ}. forEach Ġ{ Ġscan Complete ( it . key ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtermination Scan () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, Ġobject Ġ: ĠScanner Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġscan ( scan Complete : ĠBoolean , Ġdevice : ĠBluetooth Device ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( continue Scan ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( device Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** Ġyour Ġneed Ġbound Ġtarget Ġdevice , so , the Ġsame Ġdevice Ġwill Ġnot Ġbe Ġnotified Ġhere Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! same Device ( device )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscan Complete ( device ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġcancel Discovery () ĊĠĠĠĠĠĠĠ ĠBL . d (" start Ġdiscovery : Ġ" Ġ+ Ġbluetooth Adapter !!. start Discovery ()) ĊĠĠĠ Ġ} Ċ }