5.0 이상 단말에서 Bluetooth Advertising을 구현하고 있습니다.
저번 질문에 답변주신분의 도움으로 구현 성공했습니다.
그런데 Advertiser를 이용해 startAdvertising 해주는 부분에서 문제가 있습니다.
.startAdvertising( settings, advertiseData, callback)
여기서 첫번째 파라메터로 settings를 , 두번째로 data를 넘기는데
data를 만드는 방법은 다음과 같습니다.
mBTAdvertiser.startAdvertising(
BleUtil.createAdvSettings(true, 0),
BleUtil.createIBeaconAdvertiseData(
UUID.fromString("01020304-0506-0708-1112-131415161718"),
(short) 257, (short) 514, (byte) 0xc5),
mAdvCallback);
여기서
"01020304-0506-0708-1112-131415161718" 이 의미하는게 뭔지,
257, 514는 뭔지, tx값을 왜 0xc5로 주는지
createIBeaconAdvertiseData() 부분은
public static AdvertiseData createIBeaconAdvertiseData(UUID proximityUuid, short major,
short minor, byte txPower) {
if (proximityUuid == null) {
throw new IllegalArgumentException("proximitiUuid null");
}
byte[] manufacturerData = new byte[23];
ByteBuffer bb = ByteBuffer.wrap(manufacturerData);
bb.order(ByteOrder.BIG_ENDIAN);
bb.put((byte) 0x02);
bb.put((byte) 0x15);
bb.putLong(proximityUuid.getMostSignificantBits());
bb.putLong(proximityUuid.getLeastSignificantBits());
bb.putShort(major);
bb.putShort(minor);
bb.put(txPower);
AdvertiseData.Builder builder = new AdvertiseData.Builder();
builder.addManufacturerData(0x004c, manufacturerData);
AdvertiseData adv = builder.build();
return adv;
}
이렇게 돼 있는데
여기는 안의 내용이 뭔지 하나도 모르겠습니다.
제가 원하는 데이터로 구성을 하고싶은데
각각의 의미를 모르니 적용하는데 너무 힘듭니다..
byte[] manufacturerData = new byte[23];의 의미와
ByteBuffer bb = ByteBuffer.wrap(manufacturerData); 이것의 의미
bb.put 하는 데이터의 의미를 아시는분은 도움좀 부탁드립니다