Si eres programador, he publicado instrucciones sobre cómo usar un MacBook con Mavericks como iBeacon. Puede encontrar las instrucciones en mi blog en enlace
Si / cuando tenga la oportunidad, puedo crear una aplicación que pueda usar para anunciar un iBeacon.
Esta es la respuesta que di a una pregunta similar sobre el desbordamiento de pila
Mavericks no tiene la compatibilidad con iBeacon en Core Location que se agregó a iOS 7. Sin embargo, ahora Mavericks tiene la capacidad de actuar como un dispositivo periférico BLE. Dado que un iBeacon es básicamente un periférico, debería ser (y de hecho es) posible utilizar Mavericks como un iBeacon.
Para crear un iBeacon en iOS, primero crea un objeto CLBeaconRegion
y luego usa el método peripheralDataWithMeasuredPower:
para obtener un NSDictionary
que contiene los datos de publicidad necesarios para transmitir. Si tomas el contenido de este NSDictionary
de un dispositivo iOS y lo usas en Mavericks, obtienes un iBeacon.
He creado una clase para facilitar esto y permitirle generar el diccionario de datos de publicidad directamente en Mavericks. El código fuente está disponible en enlace
La clase BLCBeaconAdvertisementData
toma los valores de proximityUUID
, major
, minor
y potencia calibrada y crea un NSDictionary que se puede pasar al método startAdvertising:
de CBPeripheralManager
en Mavericks.
La clase BLCBeaconAdvertisementData
es bastante simple. El trabajo principal se realiza mediante el siguiente método:
- (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];
}
Tengo una publicación de blog más detallada sobre esto en enlace