webentwicklung-frage-antwort-db.com.de

Verwandeln Sie ein Macbook in iBeacon

Ich weiß, dass ich iOS-Geräte zu iBeacons machen kann ( Kann ein iOS7-Gerät als iBeacon fungieren? ) Leider habe ich nur ein Gerät und meine Beacons sind noch nicht angekommen. Daher habe ich mich gefragt, wie ich mein MacBook Air (Mitte 2011, unterstützt Bluetooth 4.0) zu Testzwecken in eine iBeacon verwandeln kann. Gibt es fertige Anwendungen wie das Airlocate für iOS? Danke im Voraus!

35
user2887527

Hinweis: Dies funktioniert nur in Mavericks, NICHT in Yosemite.

Mavericks verfügt nicht über die iBeacon-Unterstützung in Core Location, die in iOS 7 hinzugefügt wurde. Mavericks kann jetzt jedoch als BLE-Peripheriegerät fungieren. Da ein iBeacon im Grunde ein Peripheriegerät ist, sollte (und ist) es möglich sein, Mavericks als iBeacon zu verwenden.

Um ein iBeacon unter iOS zu erstellen, erstellen Sie zuerst ein CLBeaconRegion-Objekt und verwenden dann die peripheralDataWithMeasuredPower:-Methode, um eine NSDictionary abzurufen, die die erforderlichen Werbedaten für das Broadcasting enthält. Wenn Sie den Inhalt dieser NSDictionary von einem iOS-Gerät nehmen und für Mavericks verwenden, erhalten Sie ein iBeacon.

Ich habe eine Klasse erstellt, um dies zu vereinfachen und es Ihnen zu ermöglichen, das Werbedatenwörterbuch direkt auf Mavericks zu generieren. Der Quellcode ist verfügbar unter https://github.com/mttrb/BeaconOSX

Die BLCBeaconAdvertisementData-Klasse nimmt die proximityUUID, major, minor und die kalibrierten Leistungswerte und erstellt ein NSDictionary, das an die startAdvertising:-Methode von CBPeripheralManager bei Mavericks übergeben werden kann.

Die BLCBeaconAdvertisementData-Klasse ist ziemlich einfach. Die Hauptarbeit wird auf folgende Weise erledigt:

- (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];
}

Ich habe einen ausführlicheren Blogbeitrag dazu unter http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/

22
mttrb

Die beste Lösung, die ich bisher gefunden habe, ist diese von Tim Duckett: https://github.com/timd/MactsAsBeacon

Nehmen Sie einfach das Projekt, richten Sie eine UUID, einen Major- und einen Minor-Wert ein und klicken Sie auf Broadcast. Wirklich einfach. Die Lösung basiert auf diesem Blogbeitrag: http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/

12
James Frost

Wenn Sie die 9,99 € sparen wollen, schauen Sie sich die neueste Version des Open Source Clients von mttrb an. Ich habe weitere GUI hinzugefügt, so dass Sie alle Felder anpassen können. https://github.com/deadfalkon/BeaconOSX/releases hat sogar einen binären Download.

4
volkersfreunde

Dies ist mit OSX Mavericks möglich, nicht jedoch in Mountain Lion und früheren Versionen des Betriebssystems. Mein Unternehmen, Radius Networks, hat eine MacBeacon - App, die dies auf Mavericks macht.

In OSX Mountain Lion gibt es im Gegensatz zu iOS 6+ keine integrierte Unterstützung für den Bluetooth-Peripheriemodus, den Sie benötigen, um wie ein iBeacon zu werben. Dies bedeutet, dass Sie Ihren eigenen Low-Level-Bluetooth-Code rollen müssen, was nicht leicht zu sagen ist.

Es gibt jedoch eine Lösung für ältere Betriebssysteme. Ich habe einen externen Bluetooth-Dongle auf meinem Mac mit einer VirtualBox VM gekoppelt, auf der Linux ausgeführt wird, und habe das erreicht, wonach Sie suchen. Mein Unternehmen hat dieses VM hier zum kostenlosen Download bereitgestellt: http://developer.radiusnetworks.com/ibeacon/

4
davidgyoung

Ich habe alle diese Lösungen ausprobiert, konnte AirLocate jedoch nicht dazu bringen, ein Signal zu empfangen, bis ich Folgendes erfüllte: https://github.com/lgaches/BeaconEmitter E2C56DB5-DFFB-48D2-B060-D0F5A71096E0 Und mit der Kennung: Hallo

Ich fand diesen Beitrag über AirLocate auch nützlich: Sucht AirLocate nur nach bestimmten UUIDs?

3
amay0048

Ja, es ist möglich. Schauen Sie sich dieses github-Projekt an https://github.com/nolim1t/iBeaconAdvertisement

0
nolim1t

Das einzige Programm, das einen Mac in einen iBeacon verwandelte, der unter El Capitan (OS X 10.11) für mich funktionierte, war iBeaconSwiftOSX . Berichten zufolge auch unter Yosemite (OS X 10.10). Das (kostenlose) iOS-Scan-Dienstprogramm war iBeacon Loc von Eurelis.

Zu Ihrer Information: Unter iOS MUSS ein Scanner nach einer von einem iBeacon beworbenen SPEZIFISCHEN Kombination aus UUID und Dur/Minor suchen. Stellen Sie sicher, dass Scanner-Setup und iBeacon-Setup übereinstimmen.

0
Gary