Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class BeaconService : CBServiceListener,CBRangingListener, Service(){
- private lateinit var cubeacon : Cubeacon
- private lateinit var region : CBRegion
- private lateinit var handler : Handler
- private var macAddress : String = ""
- override fun didRangeBeaconsInRegion(p0: MutableList<CBBeacon>?, p1: CBRegion?) {
- if(p0!!.size > 0 && p0.any { it.macAddress == macAddress }){
- handler.removeCallbacksAndMessages(null)
- cubeacon.stopRangingBeaconsInRegion(region)
- Log.i("BEACON",p0.first().macAddress)
- val intent = Intent()
- intent.action = Constants.START_RANGING
- sendBroadcast(intent)
- }
- }
- override fun onBind(intent: Intent?): IBinder? {
- return null
- }
- override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
- Cubeacon.initialize(this)
- cubeacon = Cubeacon.getInstance()
- macAddress = intent.getStringExtra("macAddress")
- cubeacon.connect(this)
- region = CBRegion(
- "regiontest", UUID.fromString(Constants.REGION)
- )
- return START_NOT_STICKY
- }
- override fun onDestroy() {
- super.onDestroy()
- cubeacon.removeRangingListener(this)
- cubeacon.disconnect(this)
- }
- override fun onBeaconServiceConnect() {
- try {
- cubeacon.addRangingListener(this)
- cubeacon.startRangingBeaconsInRegion(region)
- handler = Handler()
- handler.postDelayed({
- cubeacon.stopRangingBeaconsInRegion(region)
- val intent = Intent()
- intent.action = Constants.BEACON_RANGING_TIMEOUT
- //method below is not called?
- sendBroadcast(intent)
- },25*1000)
- } catch (e: Exception) {
- val intent = Intent()
- intent.action = Constants.ON_BEACON_ERROR
- intent.putExtra("exception",e.message)
- sendBroadcast(intent)
- }
- }
- class BeaconReceiver(private val interactorContract: BeaconScanContract.InteractorContract) : BroadcastReceiver(){
- override fun onReceive(context: Context?, intent: Intent?) {
- when(intent!!.action){
- Constants.START_RANGING -> {
- //notify presenter
- interactorContract.onDeviceInBeaconRange()
- context?.unregisterReceiver(this)
- }
- Constants.BEACON_RANGING_TIMEOUT -> {
- //notify presenter
- interactorContract.onBeaconRangingTimeout()
- }
- Constants.ON_BEACON_ERROR -> {
- //notify presenter
- interactorContract.onBeaconError
- (intent.getStringExtra("exception"))
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement