Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.82 KB | None | 0 0
  1. class BeaconService : CBServiceListener,CBRangingListener, Service(){
  2. private lateinit var cubeacon : Cubeacon
  3. private lateinit var region : CBRegion
  4. private lateinit var handler : Handler
  5. private var macAddress : String = ""
  6.  
  7.  
  8. override fun didRangeBeaconsInRegion(p0: MutableList<CBBeacon>?, p1: CBRegion?) {
  9. if(p0!!.size > 0 && p0.any { it.macAddress == macAddress }){
  10. handler.removeCallbacksAndMessages(null)
  11. cubeacon.stopRangingBeaconsInRegion(region)
  12. Log.i("BEACON",p0.first().macAddress)
  13. val intent = Intent()
  14. intent.action = Constants.START_RANGING
  15. sendBroadcast(intent)
  16. }
  17. }
  18.  
  19. override fun onBind(intent: Intent?): IBinder? {
  20. return null
  21. }
  22.  
  23. override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
  24. Cubeacon.initialize(this)
  25. cubeacon = Cubeacon.getInstance()
  26. macAddress = intent.getStringExtra("macAddress")
  27. cubeacon.connect(this)
  28. region = CBRegion(
  29. "regiontest", UUID.fromString(Constants.REGION)
  30. )
  31. return START_NOT_STICKY
  32. }
  33.  
  34. override fun onDestroy() {
  35. super.onDestroy()
  36.  
  37. cubeacon.removeRangingListener(this)
  38. cubeacon.disconnect(this)
  39. }
  40.  
  41. override fun onBeaconServiceConnect() {
  42. try {
  43. cubeacon.addRangingListener(this)
  44. cubeacon.startRangingBeaconsInRegion(region)
  45. handler = Handler()
  46. handler.postDelayed({
  47. cubeacon.stopRangingBeaconsInRegion(region)
  48. val intent = Intent()
  49. intent.action = Constants.BEACON_RANGING_TIMEOUT
  50. //method below is not called?
  51. sendBroadcast(intent)
  52. },25*1000)
  53. } catch (e: Exception) {
  54. val intent = Intent()
  55. intent.action = Constants.ON_BEACON_ERROR
  56. intent.putExtra("exception",e.message)
  57. sendBroadcast(intent)
  58. }
  59. }
  60.  
  61. class BeaconReceiver(private val interactorContract: BeaconScanContract.InteractorContract) : BroadcastReceiver(){
  62. override fun onReceive(context: Context?, intent: Intent?) {
  63. when(intent!!.action){
  64. Constants.START_RANGING -> {
  65. //notify presenter
  66. interactorContract.onDeviceInBeaconRange()
  67. context?.unregisterReceiver(this)
  68. }
  69. Constants.BEACON_RANGING_TIMEOUT -> {
  70. //notify presenter
  71. interactorContract.onBeaconRangingTimeout()
  72. }
  73. Constants.ON_BEACON_ERROR -> {
  74. //notify presenter
  75. interactorContract.onBeaconError
  76. (intent.getStringExtra("exception"))
  77. }
  78. }
  79. }
  80. }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement