Je sais que je peux transformer des appareils iOS en iBeacons ( un appareil iOS7 peut-il agir comme un iBeacon? ). Malheureusement, je n'ai qu'un seul appareil et mes balises ne sont pas encore arrivées. Je me demandais donc comment transformer mon MacBook Air (mi-2011, prend en charge Bluetooth 4.0) en iBeacon à des fins de test. Existe-t-il des applications prédéfinies disponibles, telles que l’airlocate pour iOS? Merci d'avance!
Réponses
Trop de publicités?Mavericks n'ont pas le iBeacon support dans l'Emplacement de Noyau qui a été ajouté à iOS 7. Cependant, les Mavericks n'ont désormais la capacité d'agir comme un BLE périphérique. Étant donné qu'un iBeacon est fondamentalement un périphérique, il devrait être (et est) possible d'utiliser des Mavericks comme un iBeacon.
Afin de créer un iBeacon sur iOS, vous créez d'abord un CLBeaconRegion
objet, puis utilisez l' peripheralDataWithMeasuredPower:
méthode pour obtenir un NSDictionary
contenant de la nécessaire publicité des données à diffuser. Si vous prenez le contenu de ce NSDictionary
à partir d'un appareil iOS et de l'utiliser sur Mavericks, alors vous obtenez un iBeacon.
J'ai créé une classe pour rendre cela plus facile et vous permettra de générer de la publication du dictionnaire de données directement sur Mavericks. Le code source est disponible à l' https://github.com/mttrb/BeaconOSX
L' BLCBeaconAdvertisementData
de la catégorie de l' proximityUUID
, major
, minor
et calibrer les valeurs de puissance et crée un NSDictionary qui peut être transmis à l' startAdvertising:
méthode de CBPeripheralManager
sur Mavericks.
L' BLCBeaconAdvertisementData
classe est assez simple. Le gros du travail est fait 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'en ai une plus détaillée blog post à ce sujet à http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/
La meilleure solution que j'ai trouvée jusqu'à présent est celle de Tim Duckett: https://github.com/timd/MactsAsBeacon
Saisissez simplement le projet, configurez un UUID, une valeur majeure et une valeur mineure, puis cliquez sur Diffuser. Vraiment simple. La solution est basée sur ce billet de blog: http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/
C'est possible avec OSX Mavericks, mais pas dans la Montagne du Lion et les versions antérieures de l'OS. Mon entreprise, Rayon de Réseaux, a un MacBeacon application que cela sur Mavericks.
Dans OSX Mountain Lion, contrairement à iOS 6+, il n'y a pas de prise en charge intégrée pour les périphériques Bluetooth mode dont vous avez besoin pour faire de la publicité comme un iBeacon. Cela signifie rouler votre propre faible niveau de Bluetooth de code, ce qui n'est pas facile pour dire le moins.
Mais il existe une solution pour les systèmes d'exploitation plus anciens. Je l'ai couplé externe dongle Bluetooth sur mon Mac avec une VM VirtualBox sous Linux et obtenu ce que vous cherchez. Mon entreprise fait cette VM disponible en téléchargement gratuit ici: http://developer.radiusnetworks.com/ibeacon/
Si vous voulez économiser 9,99 €, jetez un coup d'œil à la dernière version du client open source de mttrb. J'ai ajouté un peu plus de GUI afin que vous puissiez ajuster tous les champs. https://github.com/deadfalkon/BeaconOSX/releases a même un téléchargement binaire.