IOSデバイスをiBeaconsに変換できることを知っています( iOS7デバイスはiBeaconとして機能できますか? )。残念ながら、デバイスは1つしかなく、ビーコンはまだ到着していません。だから、テストのためにMacBook Air(2011年半ば、Bluetooth 4.0をサポートしている)をiBeaconに変えるにはどうすればいいのかと思っていた。 iOSのairlocateのような既製のアプリケーションはありますか?前もって感謝します!
注:これは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
クラスは、proximityUUID
、major
、minor
および調整された電力値を取り、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/ に、これに関する詳細なブログ投稿があります。
私がこれまでに見つけた最良の解決策は、Tim Duckettによるものです。 https://github.com/timd/MactsAsBeacon
プロジェクトを取得し、UUID、メジャー、マイナーの値を設定して、[ブロードキャスト]をクリックするだけです。本当に簡単です。ソリューションはこのブログ投稿に基づいています: http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/
9.99€を保存する場合は、mttrbによるオープンソースクライアントの最新バージョンをご覧ください。すべてのフィールドを調整できるように、GUIをいくつか追加しました。 https://github.com/deadfalkon/BeaconOSX/releases バイナリダウンロードもあります。
これは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/
これらのすべてのソリューションを試しましたが、AirLocateに信号を受け取らせませんでした: https://github.com/lgaches/BeaconEmitter そしてこのUUIDで送信を開始しました:E2C56DB5-DFFB -48D2-B060-D0F5A71096E0および識別子:hello
AirLocateに関するこの投稿も有用だと思いました: AirLocateは特定のUUIDのみを検索しますか?
はい、可能です。このgithubプロジェクトを確認してください https://github.com/nolim1t/iBeaconAdvertisement
MacをEl Capitan(OS X 10.11)で動作するiBeaconに変える唯一のユーティリティは iBeaconSwiftOSX でした。また、ヨセミテ(OS X 10.10)で動作することが報告されています。使用された(無料の)iOSスキャンユーティリティは、Eurelisの iBeacon Loc でした。
参考:iOSでは、スキャナーは、UUIDと、iBeaconによってアドバタイズされたmajor/minorの特定の組み合わせを検索する必要があります。スキャナーのセットアップとiBeaconのセットアップが一致していることを確認してください。