티스토리 뷰

iOS & swift

iBeacon in iOS

ggasoon2 2023. 8. 10. 16:59

레퍼런스

 

raywenderlich tutorial, 애플 공식문서

https://www.kodeco.com/632-ibeacon-tutorial-with-ios-and-swift

https://developer.apple.com/ibeacon/Getting-Started-with-iBeacon.pdf

https://developer.apple.com/documentation/corelocation/determining_the_proximity_to_an_ibeacon_device

 

 

 

iBeacon이 제공하는 정보

 

iBeacon는 UUID, major, minor정보를 가지고 있음.

 

 

 

 

iBeacon 식별

 

1. iBeacon을 사용하기위해선 iBeacon의 UUID를 Client에서 알고 있어야한다. (모르면 식별불가)

2. 그 외 Client에서는 최대 20개의 UUID을 등록할 수 있다.

 

 

 

비콘 식별 예시

 

예시로 전국의 백화점에 비콘을 설치한다고 했을때 가정해봅시다 (20개 이상)

 

먼저 동일한 UUID로 비콘을 설치합니다. 그리고 major와 minor로 분류할 수 있습니다.

major는 백화점을 구분할 수 있고,

minor는 백화점 내부 가게를 구분할 수 있습니다.

 

 

 

기기 요청 권한 

 

iBeacon은 블루투스 기능 권한 요청 대신 Location 기능 권한 요청만 하면 된다고 합니다.

 

Privacy - Location When In Use Usage Description

Privacy - Location Always and When In Use Usage Description (백그라운드에서도 위치수집하기 위해서)

 

백그라운드에서도 위치 업데이트할 수 있도록 추가

 

 

추가적으로 아이폰 기기를 iBeacon으로 사용할 경우엔 bluetooth권한도 요청받아야 한다고 하네요

 

 

 

Monitoring

 

- iBeacon 존재 여부 확인, enter 또는 leave 될 때 notification 수신 가능하게 함.

- Foreground, Background, 그 외 Terminate 상황에서도 가능

- notifyEntryStateOnDisplay = true

 

 

 

Ranging

 

- iBeacon과 device간 Proximit 측정

- Foreground, Background 상황에서 가능

 

 

 

Proximity

  • Immediate : 비콘과 디바이스가 상당히 가까운 상태로 거의 디바이스에 붙어 있는 수준
  • Near : 대략적으로 1 ~ 3 미터 내외의 거리로 비교적 가까운 수준이거나 신호가 Immediate에 비해 약할 때
  • Far : 물리적인 거리가 Near나 Immediate보다 떨어져 있거나 신호의 세기가 이들보다 약한 경우
  • Unknown : 신호의 세기나 거리에 따른 근접도의 판단이 불가능할 때, 방금 막 Ranging이 시작되었을 때 등과 같이 측정을 하기 충분한 상황이 아닐 때.

 

 

Implement

 

https://kkh0977.tistory.com/1332

https://kkh0977.tistory.com/1333

 

참고

댓글