web-dev-qa-db-ja.com

MacbookをiBeaconに変える

IOSデバイスをiBeaconsに変換できることを知っています( iOS7デバイスはiBeaconとして機能できますか? )。残念ながら、デバイスは1つしかなく、ビーコンはまだ到着していません。だから、テストのためにMacBook Air(2011年半ば、Bluetooth 4.0をサポートしている)をiBeaconに変えるにはどうすればいいのかと思っていた。 iOSのairlocateのような既製のアプリケーションはありますか?前もって感謝します!

36
user2887527

注:これはMavericksでのみ機能し、ヨセミテでは機能しません。

Mavericksには、iOS 7に追加されたCore LocationのiBeaconサポートがありません。しかし、MavericksにはBLE周辺機器として機能する機能があります。 iBeaconは基本的に周辺機器であるため、MavericksをiBeaconとして使用することは可能です(実際に可能です)。

IOSでiBeaconを作成するには、最初にCLBeaconRegionオブジェクトを作成し、peripheralDataWithMeasuredPower:メソッドを使用して、ブロードキャストに必要な広告データを含むNSDictionaryを取得します。このNSDictionaryの内容をiOSデバイスから取得してMavericksで使用すると、iBeaconが取得されます。

これを簡単にし、マーベリックで広告データディクショナリを直接生成できるようにするクラスを作成しました。ソースコードは https://github.com/mttrb/BeaconOSX で入手できます。

BLCBeaconAdvertisementDataクラスは、proximityUUIDmajorminorおよび調整された電力値を取り、startAdvertising:メソッドに渡すことができるNSDictionaryを作成しますCBPeripheralManager of Mavericks。

BLCBeaconAdvertisementDataクラスは非常に単純です。主な作業は次の方法で行われます。

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

http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/ に、これに関する詳細なブログ投稿があります。

22
mttrb

私がこれまでに見つけた最良の解決策は、Tim Duckettによるものです。 https://github.com/timd/MactsAsBeacon

プロジェクトを取得し、UUID、メジャー、マイナーの値を設定して、[ブロードキャスト]をクリックするだけです。本当に簡単です。ソリューションはこのブログ投稿に基づいています: http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/

12
James Frost

9.99€を保存する場合は、mttrbによるオープンソースクライアントの最新バージョンをご覧ください。すべてのフィールドを調整できるように、GUIをいくつか追加しました。 https://github.com/deadfalkon/BeaconOSX/releases バイナリダウンロードもあります。

4
volkersfreunde

これはOSX Mavericksで可能ですが、Mountain Lionおよび以前のバージョンのOSではできません。私の会社であるRadius Networksには、Mavericksでこれを行う MacBeacon アプリがあります。

OSX Mountain Lionでは、iOS 6以降とは異なり、iBeaconのように広告する必要があるBluetooth周辺モードのサポートは組み込まれていません。これは、独自の低レベルBluetoothコードをローリングすることを意味します。控えめに言っても簡単ではありません。

しかし、古いオペレーティングシステムには解決策があります。 Mac上の外部BluetoothドングルとLinuxを実行しているVirtualBox VMを組み合わせて、探しているものを実現しました。私の会社はこれをVMここからダウンロード: http://developer.radiusnetworks.com/ibeacon/

4
davidgyoung

これらのすべてのソリューションを試しましたが、AirLocateに信号を受け取らせませんでした: https://github.com/lgaches/BeaconEmitter そしてこのUUIDで送信を開始しました:E2C56DB5-DFFB -48D2-B060-D0F5A71096E0および識別子:hello

AirLocateに関するこの投稿も有用だと思いました: AirLocateは特定のUUIDのみを検索しますか?

3
amay0048

はい、可能です。このgithubプロジェクトを確認してください https://github.com/nolim1t/iBeaconAdvertisement

0
nolim1t

MacをEl Capitan(OS X 10.11)で動作するiBeaconに変える唯一のユーティリティは iBeaconSwiftOSX でした。また、ヨセミテ(OS X 10.10)で動作することが報告されています。使用された(無料の)iOSスキャンユーティリティは、Eurelisの iBeacon Loc でした。

参考:iOSでは、スキャナーは、UUIDと、iBeaconによってアドバタイズされたmajor/minorの特定の組み合わせを検索する必要があります。スキャナーのセットアップとiBeaconのセットアップが一致していることを確認してください。

0
Gary