Если вы программист, я разместил инструкции о том, как использовать MacBook с Mavericks в качестве iBeacon. Вы можете найти инструкции в моем блоге по адресу http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/
Если / когда я получу шанс, я могу создать приложение, которое вы можете использовать для рекламы iBeacon.
Это ответ, который я дал на аналогичный вопрос о переполнении стека
У Mavericks нет поддержки iBeacon в Core Location, которая была добавлена в iOS 7. Однако теперь у Mavericks есть возможность выступать в качестве периферийного устройства BLE. Учитывая, что iBeacon в основном является периферийным устройством, должно быть (и действительно возможно) использовать Mavericks в качестве iBeacon.
Чтобы создать iBeacon на iOS, сначала нужно создать CLBeaconRegion
объект, а затем использовать peripheralDataWithMeasuredPower:
метод, чтобы получить NSDictionary
необходимые рекламные данные для трансляции. Если вы берете это содержимое NSDictionary
с устройства iOS и используете его на Mavericks, вы получаете iBeacon.
Я создал класс, чтобы упростить это и позволить вам создавать словарь рекламных данных непосредственно на Mavericks. Исходный код доступен по адресу https://github.com/mttrb/BeaconOSX.
BLCBeaconAdvertisementData
Класс принимают proximityUUID
, major
, minor
и калиброванные значения мощности и создает NSDictionary , который может быть передан в startAdvertising:
метод CBPeripheralManager
на Mavericks.
BLCBeaconAdvertisementData
Класс довольно прост. Основная работа выполняется следующим методом:
- (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];
}
У меня есть более подробное сообщение в блоге об этом на http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/