Android

스레드 및 비콘 통신 관련 정보 수집

Birthmark 2020. 6. 26. 09:27

머릿속에 키워드들이 범주화가 안되어 무작위로 저장해두고, 더 공부한 뒤에 다시 볼 예정이다.

頭の片隅に置いておくこと!

BLE와 iBeacon 이해

iBeacon과 BLE

iBeacon은 BLE의 communication 과정중 알림(advertising)만을 사용한다.
이러한 구현 방식은 iBeacon의 주목적이 데이터 교환이 아니라 특정 ID가 부여된 장비에 대한 존재유무 파악이기 때문이다.

iBeacon Packet format

iBeacon의 Packet은 위에서 설명한 알림(advertising) 패킷 포맷을 따르며, 30 bytes의 고정길이 Data를 갖는다. Data는 다음 네 가지로 이뤄진다.

  • Proximity UUID : iBeacon 타입에 대한 식별자
  • Major Number : 연관된 set의 beacon을 구분하는 번호 (vendor ID 개념)
  • Minor Number : 개개의 beacon을 구분하는 번호
  • TX Power : 1 meter 거리에서 측정된 수신 신호 강도 (RSSI)

 AltBeacon Library Download 

AltBeacon Sample Code

비콘 백그라운드 관련 이슈

모든감지 콜백은 UI스레드에서 이루어짐. Android Beacon Library는 자체 백그라운드 스레드 풀을 유지하고 운영체제에서 패킷이 들어오면 감지처리를 우선순위가 낮은 백그라운드 스레드로 즉시 전환함. 결과적으로 UI스레드에서 오버헤드가 최소화됨.  

Starting Beacons in Android

비콘개요

비콘은 오로지 신호를 전송하는 것만 가능함. 또한 비콘은 어떠한 정보를 전달하는 것이 아닌 단순히 비콘 자신의 고유 신호만을 전송함. 이러한 신호의 정보를 서버에 등록하여 이를 바탕으로 디바이스가 신호를 인식하면 해당 신호에 대한 정보를 서버로부터 받아와 사용자에게 전달하는 방식으로 설계를 해야함.

위치 접근 허용을 항상 허용으로 해야 백그라운드에서도 정상적으로 앱이 작동함.

Monitoring & Ranging

 Monitoring 을 통해 현재 디바이스가 비콘의 영역의 내부에 있다는 것이 판단되면 Ranging 을 통해 해당 비콘과의 근접도를 판단함.

비콘 빌드 코드

안드로이드에서 iBeacon감지 및 세부정보 캡처

didEnterRegion

didExitRegion

비콘 scanning 하는 동안 UI 업데이트하려면 ex)

runOnUiThread(new Runnable() { public void run() { Bitmap bmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.image10m); Radar.setImageBitmap(bmp); } });

★안드로이드 스레드와 백그라운드 태스크 이해하기

백그라운드 작업 시 Service

앱 실행여부와 관계없이 블루투스 신호 감지를 위해 필요한 Service

★Service -> onStartCommand() 안드로이드 공식문서 참고 / 한글판 / 예시

Thread, AsyncTask, Service에 대한 이해 필요

★Looper, Handler, Thread를 통한 백그라운드 처리1

★Looper, Handler, Thread를 통한 백그라운드 처리2

 

[안드로이드] Thread, Handler, Looper를 통한 백그라운드 처리

이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론  안드로이드의 UI는 기본적으로 메인스레드를 주축으로하는 싱글 스레드 모델로 동작하므로, 메인 스레드에서는 긴 작업을 피해야 합니다. �

itmining.tistory.com

Beacon android 연동하기

 

Beacon android 연동하기

Beacon을 연동하기가 생각보다 번거롭다. Beacon 연동을 위한 공식문서?(구글에서 친절히 제공하는?)가 ...

blog.naver.com

HTTP통신에서 데이터 전송하는 비콘API?

★스레드 이해


출처

https://baked-corn.tistory.com/121 

https://medium.com/@devAsterisk/