Si vous êtes un programmeur, j'ai publié des instructions sur la façon d'utiliser un MacBook avec Mavericks comme iBeacon. Vous pouvez trouver les instructions sur mon blog à http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/
Si / quand j'en ai l'occasion, je peux créer une application que vous pouvez utiliser pour annoncer un iBeacon.
C'est la réponse que j'ai donnée à une question similaire sur Stack Overflow
Mavericks n'a pas la prise en charge iBeacon dans Core Location qui a été ajoutée à iOS 7. Cependant, Mavericks a désormais la capacité d'agir comme un périphérique BLE. Étant donné qu'un iBeacon est essentiellement un périphérique, il devrait être (et est en effet) possible d'utiliser Mavericks comme iBeacon.
Pour créer un iBeacon sur iOS, vous devez d'abord créer un CLBeaconRegion
objet, puis utiliser la peripheralDataWithMeasuredPower:
méthode pour obtenir un NSDictionary
contenant les données de publicité nécessaires à diffuser. Si vous prenez le contenu d' NSDictionary
un appareil iOS et l'utilisez sur Mavericks, vous obtenez un iBeacon.
J'ai créé une classe pour rendre cela plus facile et vous permettre de générer le dictionnaire de données de publicité directement sur Mavericks. Le code source est disponible sur https://github.com/mttrb/BeaconOSX
La BLCBeaconAdvertisementData
classe prend les proximityUUID
, major
, minor
et les valeurs de puissance calibrées et crée une NSDictionary qui peut être transmis à la startAdvertising:
méthode CBPeripheralManager
sur Mavericks.
La BLCBeaconAdvertisementData
classe est assez simple. Le travail principal est effectué par la méthode suivante:
- (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];
}
J'ai un article de blog plus détaillé à ce sujet sur http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/