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 ces instructions sur mon blog à l'adresse suivante http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/
Si/Quand j'en ai l'occasion, je créerai peut-être une application que vous pourrez utiliser pour faire la publicité d'un iBeacon.
Voici la réponse que j'ai donnée à une question similaire sur Stack Overflow
Mavericks ne dispose pas de la prise en charge iBeacon dans Core Location qui a été ajoutée à iOS 7. Cependant, Mavericks a maintenant la capacité d'agir comme un périphérique BLE. Étant donné qu'un iBeacon est fondamentalement un périphérique, il devrait être (et il l'est effectivement) possible d'utiliser Mavericks comme un iBeacon.
Afin de créer un iBeacon sur iOS, vous devez d'abord créer un CLBeaconRegion
puis utiliser l'objet peripheralDataWithMeasuredPower:
pour obtenir un NSDictionary
contenant les données publicitaires nécessaires à la diffusion. Si vous prenez le contenu de ce NSDictionary
à partir d'un appareil iOS et l'utiliser sur Mavericks alors vous obtenez un iBeacon.
J'ai créé une classe pour vous faciliter la tâche et vous permettre de générer le dictionnaire de données de l'annonce directement sur Mavericks. Le code source est disponible à l'adresse suivante https://github.com/mttrb/BeaconOSX
El BLCBeaconAdvertisementData
la classe prend le proximityUUID
, major
, minor
et les valeurs de puissance calibrées et crée un dictionnaire NSDictionary qui peut être transmis à l'outil de gestion de l'énergie. startAdvertising:
méthode de CBPeripheralManager
sur les Mavericks.
El BLCBeaconAdvertisementData
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 publié un article de blog plus détaillé à ce sujet à l'adresse suivante http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/