비콘의 UUID, major, minor, power 정보 추출하기
2016. 4. 21. 18:05ㆍ아이폰 개발
비콘의 UUID, major, minor, power 정보 추출 방법
advertisingData 개념을 몰라서 헤멨으나 다행히 어렵지 않게 처리 완료.
비콘에 따라서 넘어오는 데이터 형식이 다소 차이가 있다.
NSRange uuidRange = NSMakeRange(4, 16);
NSRange majorRange = NSMakeRange(20, 2);
NSRange minorRange = NSMakeRange(22, 2);
NSRange powerRange = NSMakeRange(24, 1);
Byte uuidBytes[16];
[data getBytes:&uuidBytes range:uuidRange];
NSUUID *uuid = [[NSUUID alloc] initWithUUIDBytes:uuidBytes];
int16_t majorBytes;
[data getBytes:&majorBytes range:majorRange];
int16_t majorBytesBig = (majorBytes >> 8) | (majorBytes << 8);
int16_t minorBytes;
[data getBytes:&minorBytes range:minorRange];
int16_t minorBytesBig = (minorBytes >> 8) | (minorBytes << 8);
int8_t powerByte;
[data getBytes:&powerByte range:powerRange];
return @{ @"uuid" : uuid,
@"major" : @(majorBytesBig),
@"minor" : @(minorBytesBig),
@"power" : @(powerByte)
};
iOS에서는 비콘의 Mac Address를 알아내는 것은 불가라고 한다.
private API를 이용하면 가능하다고 하는 것 같은데 알고 싶지 않다.
CoreBluetooth 기본 개념 잘 정리된 것
http://stonerain.tistory.com/88
CoreBluetooth 예제
http://samse.tistory.com/entry/iOS-7-SDK-Core-Bluetooth-%EC%8B%A4%EC%A0%84-%EC%97%B0%EC%8A%B5