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 link
Se / Quando ho la possibilità, posso creare un'app che puoi usare 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 dispositivo periferico BLE. Dato che un iBeacon è fondamentalmente una periferica dovrebbe essere (e in effetti è) possibile utilizzare Mavericks come iBeacon.
Per creare un iBeacon su iOS, devi prima creare un oggetto CLBeaconRegion
e poi usare il metodo peripheralDataWithMeasuredPower:
per ottenere un NSDictionary
contenente i dati pubblicitari necessari da trasmettere. Se si prende il contenuto di questo NSDictionary
da un dispositivo iOS e lo si utilizza su Mavericks, si ottiene un iBeacon.
Ho creato una classe per semplificare e consentire la generazione del dizionario dei dati pubblicitari direttamente su Mavericks. Il codice sorgente è disponibile all'indirizzo link
La classe BLCBeaconAdvertisementData
prende proximityUUID
, major
, minor
e valori di potenza calibrati e crea un NSDictionary che può essere passato al metodo startAdvertising:
di CBPeripheralManager
su Mavericks.
La classe BLCBeaconAdvertisementData
è abbastanza semplice. Il lavoro principale viene svolto 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 più dettagliato su questo blog all'indirizzo link