1+ package br.ufc.predetect.ble.receivers
2+
3+ import android.content.BroadcastReceiver
4+ import android.content.Context
5+ import android.content.Intent
6+ import android.util.Log
7+ import br.ufc.predetect.ble.constants.ACTION_START_OBSERVING_SERVICE
8+ import br.ufc.predetect.ble.constants.BLE_BUNDLE
9+ import br.ufc.predetect.ble.constants.LOG_TAG
10+ import br.ufc.predetect.ble.services.BLENetworkObserverService
11+ import br.ufc.predetect.ble.utils.createBeaconBundle
12+ import br.ufc.quixada.predetect.common.utils.TOKEN_OBSERVER
13+ import java.util.*
14+
15+ class BLEObservingReceiver : BroadcastReceiver () {
16+
17+ override fun onReceive (context : Context ? , intent : Intent ? ) {
18+ context?.let { ctx ->
19+ intent?.action?.run {
20+ if (this == ACTION_START_OBSERVING_SERVICE ) {
21+ val serviceIntent = Intent (context, BLENetworkObserverService ::class .java)
22+
23+ val sleepTimeOneMinute: Long = 60_000
24+ val token = " token${UUID .randomUUID()} "
25+
26+ serviceIntent.putExtra(TOKEN_OBSERVER , token)
27+
28+ Log .d(LOG_TAG , " BLEObservingReceiver: $token " )
29+
30+ val btMACsToObserve : List <String > = intent.getStringArrayListExtra(" btMACsToObserve" )
31+ val timeInMinutes : Int = intent.getIntExtra(" timeInMinutes" , 1 )
32+ val maxRangeInMeters : Double = intent.getDoubleExtra(" maxRangeInMeters" , 10.0 )
33+
34+ serviceIntent.putExtra(BLE_BUNDLE , createBeaconBundle(btMACsToObserve, timeInMinutes * sleepTimeOneMinute, maxRangeInMeters))
35+
36+ ctx.startService(serviceIntent)
37+ }
38+ }
39+ }
40+ }
41+
42+ }
0 commit comments