Se sei un programmatore, ho pubblicato le istruzioni su come utilizzare un MacBook con Mavericks come iBeacon. Puoi trovare le istruzioni sul mio blog all'indirizzo http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/
Se / Quando avrò la possibilità, potrei creare un'app che puoi utilizzare per pubblicizzare un iBeacon.
Questa è la risposta che ho dato a una domanda simile su Stack Overflow
Mavericks non ha il supporto iBeacon in Core Location che è stato aggiunto a iOS 7. Tuttavia, Mavericks ora ha la capacità di agire come un dispositivo periferico BLE. Dato che un iBeacon è sostanzialmente una periferica, dovrebbe essere (ed effettivamente è) possibile usare Mavericks come iBeacon.
Per creare un iBeacon su iOS, devi prima creare un CLBeaconRegion
oggetto e quindi utilizzare il peripheralDataWithMeasuredPower:
metodo per ottenere un NSDictionary
contenente i dati pubblicitari necessari per la trasmissione. Se ne prendi il contenuto NSDictionary
da un dispositivo iOS e lo usi su Mavericks, otterrai un iBeacon.
Ho creato una classe per semplificare e consentire di generare il dizionario dei dati pubblicitari direttamente su Mavericks. Il codice sorgente è disponibile su https://github.com/mttrb/BeaconOSX
La BLCBeaconAdvertisementData
classe prendere i proximityUUID
, major
, minor
e valori di potenza tarati e crea un NSDictionary che può essere passato al startAdvertising:
metodo CBPeripheralManager
su Mavericks.
La BLCBeaconAdvertisementData
lezione è abbastanza semplice. Il lavoro principale viene eseguito con il seguente metodo:
- (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];
}
Ho un post sul blog più dettagliato a riguardo su http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/