Si es programador, he publicado instrucciones sobre cómo usar un MacBook con Mavericks como iBeacon. Puede encontrar las instrucciones en mi blog en http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/
Si tengo la oportunidad, puedo crear una aplicación que pueda usar para anunciar un iBeacon.
Esta es la respuesta que le di a una pregunta similar sobre Stack Overflow
Mavericks no tiene el soporte de iBeacon en Core Location que se agregó a iOS 7. Sin embargo, Mavericks ahora 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) usar Mavericks como un iBeacon.
Para crear un iBeacon en iOS, primero debe crear un CLBeaconRegion
objeto y luego usar el peripheralDataWithMeasuredPower:
método para obtener un que NSDictionary
contenga los datos publicitarios necesarios para transmitir. Si toma el contenido de esto NSDictionary
desde un dispositivo iOS y lo usa en Mavericks, obtendrá un iBeacon.
He creado una clase para facilitar esto y permitirle generar el diccionario de datos publicitarios directamente en Mavericks. El código fuente está disponible en https://github.com/mttrb/BeaconOSX
La BLCBeaconAdvertisementData
clase tome las proximityUUID
, major
, minor
y los valores de potencia calibrado y crea una NSDictionary que se puede pasar al startAdvertising:
método para CBPeripheralManager
el Mavericks.
La BLCBeaconAdvertisementData
clase 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 http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/