38

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

4

7 に答える 7

22

注: これは Mavericks でのみ機能し、Yosemite では機能しません。

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

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

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

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

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/でより詳細なブログ投稿があります。

于 2013-11-02T11:52:08.870 に答える
13

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

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

于 2013-11-19T22:17:55.427 に答える
4

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

OSX Mountain Lion では、iOS 6+ とは異なり、iBeacon のようにアドバタイズする必要がある Bluetooth ペリフェラル モードの組み込みサポートはありません。これは、独自の低レベル Bluetooth コードを展開することを意味し、控えめに言っても簡単ではありません。

ただし、古いオペレーティング システム用のソリューションがあります。Linux を実行している VirtualBox VM と Mac の外部 Bluetooth ドングルをペアリングし、探しているものを実現しました。私の会社は、この VM を無料でダウンロードできるようにしました: http://developer.radiusnetworks.com/ibeacon/

于 2013-10-17T02:34:17.457 に答える
4

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

于 2013-12-02T14:30:08.437 に答える
3

私はこれらすべての解決策を試しましたが、これに従うまで AirLocate に信号を拾わせることができませんでした: https://github.com/lgaches/BeaconEmitter そしてこの UUID で送信を開始しました: E2C56DB5-DFFB-48D2-B060-D0F5A71096E0 と識別子: hello

AirLocate に関する次の投稿も役に立ちました 。AirLocate は特定の UUID のみを検索しますか?

于 2014-04-05T04:50:56.923 に答える
1

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

于 2013-11-19T03:47:01.940 に答える