37 votes

Transformez votre Macbook en iBeacon

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!

22voto

mttrb Points 5330

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/

12voto

James Frost Points 3613

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/

6voto

davidhelms Points 97

Chez Radius Networks, nous avons créé un outil pour ce faire, appelé MacBeacon. Nous l'avons trouvé si utile pour concevoir, tester et itérer des solutions basées sur iBeacon que nous avons décidé de le transformer en un produit. Découvrez-le, vous pourriez le trouver utile.

http://www.radiusnetworks.com/macbeacon-app.html

4voto

davidgyoung Points 14271

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/

4voto

volkersfreunde Points 120

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X