1

Swift ios アプリを使用して、Google Nearly API (iBeacon API ではない) を使用してビーコンをスキャンしたい

Google developer docを見て、同じサイトから git サンプルを取得しました。

これが私のコードです

初めて実際のiOSデバイスにアプリをインストールしました

ただし、foundおよびlostハンドラーは呼び出されません。

バンドル ID、パブリック ios API キー (ビーコン アタッチメントの同じ Google コンソール プロジェクト) を再確認しました。

ただし、動作中の登録済みビーコンの近くではまだ機能しません。

同じビーコンのスキャンに成功する Android アプリもあります。

他に何が確認できますか?

"Strategy"私の迅速なコードにコードがありません。

どうすればこれを追加できますか? github の例にこれがないのはなぜですか?

GNSStrategy *beaconStrategy = [GNSStrategy
    strategyWithParamsBlock:^(GNSStrategyParams *params) {
      params.includeBLEBeacons = YES;
    }];
    GNSSubscriptionParams *beaconParams = [GNSSubscriptionParams
        paramsWithMessageNamespace:@"com.mycompany.mybeaconservice"
                              type:@"mybeacontype"
                          strategy:beaconStrategy];
    _beaconSubscription = [_messageManager subscriptionWithParams:beaconParams
                                              messageFoundHandler:myMessageFoundHandler
                                               messageLostHandler:myMessageLostHandler];

私のコードで:

func startScanning() {
    if let messageMgr = self.messageMgr {

        // Subscribe to messages from nearby devices and display them in the message view.
        subscription = messageMgr.subscriptionWithMessageFoundHandler({[unowned self] (message: GNSMessage!) -> Void in

            self.mainViewController.location_text.text = (String(data: message.content, encoding:NSUTF8StringEncoding))
            self.mainViewController.startRefreshTimer()
            },

            messageLostHandler: {[unowned self](message: GNSMessage!) -> Void in

                if (self.mainViewController.userState.enrollState == EnrollState.confirmPosition)
                {
                    self.mainViewController.stopRefreshTimer()
                    self.mainViewController.enrollButtonManager.setSearchingForBeaconsBtn()
                }
            })
    }
}
4

1 に答える 1