Jeśli jesteś programistą, zamieściłem instrukcje dotyczące używania MacBooka z Mavericks jako iBeacon. Instrukcje znajdują się na moim blogu pod adresem http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/
Jeśli / Kiedy dostanę szansę, mogę utworzyć aplikację, której można użyć do reklamowania iBeacon.
To jest odpowiedź na podobne pytanie dotyczące przepełnienia stosu
Mavericks nie ma obsługi iBeacon w Core Location, która została dodana do iOS 7. Jednak Mavericks ma teraz możliwość działania jako urządzenie peryferyjne BLE. Biorąc pod uwagę, że iBeacon jest w zasadzie urządzeniem peryferyjnym, powinno być możliwe (i rzeczywiście) możliwe użycie Mavericks jako iBeacon.
Aby utworzyć iBeacon na iOS, najpierw musisz utworzyć CLBeaconRegion
obiekt, a następnie użyć peripheralDataWithMeasuredPower:
metody, aby uzyskać NSDictionary
niezbędne dane reklamowe do emisji. Jeśli weźmiesz zawartość tego NSDictionary
urządzenia z urządzenia iOS i użyjesz go w Mavericks, otrzymasz iBeacon.
Stworzyłem klasę, aby to ułatwić i umożliwić generowanie słownika danych reklamowych bezpośrednio w Mavericks. Kod źródłowy jest dostępny na https://github.com/mttrb/BeaconOSX
BLCBeaconAdvertisementData
Klasa podjąć proximityUUID
, major
, minor
i kalibrowane wartości mocy i tworzy NSDictionary, które mogą być przekazywane do startAdvertising:
metody CBPeripheralManager
na Mavericks.
BLCBeaconAdvertisementData
Klasa jest dość prosta. Główną pracę wykonuje się następującą metodą:
- (NSDictionary *)beaconAdvertisement {
NSString *beaconKey = @"kCBAdvDataAppleBeaconKey";
unsigned char advertisementBytes[21] = {0};
[self.proximityUUID getUUIDBytes:(unsigned char *)&advertisementBytes];
advertisementBytes[16] = (unsigned char)(self.major >> 8);
advertisementBytes[17] = (unsigned char)(self.major & 255);
advertisementBytes[18] = (unsigned char)(self.minor >> 8);
advertisementBytes[19] = (unsigned char)(self.minor & 255);
advertisementBytes[20] = self.measuredPower;
NSMutableData *advertisement = [NSMutableData dataWithBytes:advertisementBytes length:21];
return [NSDictionary dictionaryWithObject:advertisement forKey:beaconKey];
}
Bardziej szczegółowy post na ten temat znajduje się na stronie http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/