tutorial setup programming how google eddystone beacons beacon macos bluetooth-lowenergy ibeacon

macos - programming - how to setup beacon



Convierte Macbook en iBeacon (7)

Sé que puedo convertir dispositivos iOS en iBeacons ( ¿Puede un dispositivo iOS7 actuar como iBeacon? ). Lamentablemente, solo tengo un dispositivo y mis balizas aún no han llegado. Así que me preguntaba cómo podría convertir mi MacBook Air (mediados de 2011, admite Bluetooth 4.0) en una iBeacon para fines de prueba. ¿Hay alguna aplicación preparada disponible como AirLocate para iOS? ¡Gracias por adelantado!


Esto es posible con OSX Mavericks, pero no en Mountain Lion y versiones anteriores del sistema operativo. Mi empresa, Radius Networks, tiene una aplicación MacBeacon que hace esto en Mavericks.

En OSX Mountain Lion, a diferencia de iOS 6+, no hay compatibilidad incorporada para el modo periférico Bluetooth que necesita para publicitar como un iBeacon. Esto significa rodar su propio código Bluetooth de bajo nivel, que no es fácil decirlo.

Pero hay una solución para sistemas operativos más antiguos. Conecté un dongle Bluetooth externo en mi Mac con una VirtualBox VM con Linux y logré lo que estaba buscando. Mi empresa puso esta máquina virtual a disposición para su descarga gratuita aquí: http://developer.radiusnetworks.com/ibeacon/



La única utilidad para convertir una Mac en una iBeacon que funcionó para mí bajo El Capitán (OS X 10.11) fue iBeaconSwiftOSX . También se informa que trabaja bajo Yosemite (OS X 10.10). La utilidad de escaneo de iOS (gratuita) utilizada fue iBeacon Loc de Eurelis.

FYI: en iOS, un escáner DEBE buscar una combinación ESPECÍFICA de UUID y mayor / menor anunciada por un iBeacon. Asegúrese de que la configuración del escáner y la configuración de iBeacon coincidan.




Si desea guardar los 9.99 € eche un vistazo a la última versión del cliente de código abierto con mttrb. Agregué más GUI para que pueda ajustar todos los campos. https://github.com/deadfalkon/BeaconOSX/releases incluso tiene una descarga binaria.


Nota: Esto solo funciona en Mavericks, NO funciona en Yosemite.

Mavericks no tiene el soporte 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, debe 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 contenga los datos de publicidad necesarios para transmitir. Si toma los contenidos de este NSDictionary desde un dispositivo iOS y lo usa en Mavericks, entonces obtiene un iBeacon.

Creé una clase para hacer esto más fácil y te permití generar el diccionario de datos de publicidad directamente en Mavericks. El código fuente está disponible en https://github.com/mttrb/BeaconOSX

La clase BLCBeaconAdvertisementData toma los BLCBeaconAdvertisementData proximityUUID , major , minor y calibrado 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 por 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/