gpt4 book ai didi

ios - swift nearby api找不到信标

转载 作者:行者123 更新时间:2023-11-28 06:50:12 27 4
gpt4 key购买 nike

我想使用我的 swift ios 应用程序使用 google nearby api(不是 iBeacon api)扫描信标

我看到谷歌开发者doc ,我从同一站点获取了 git 样本。

这是我的 code

我是第一次在真实的 ios 设备上安装该应用

但是永远不会调用 foundlost 处理程序。

我仔细检查了 bundle id,公共(public) ios API key (信标附件的同一谷歌控制台项目)

但它仍然无法在工作和注册的信标附近工作。

我还有一个 android 应用程序成功扫描了相同的信标。

我还能检查什么?

我的 swift 代码中缺少 "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()
}
})
}
}

最佳答案

您需要将 GNSStrategy 添加到您的订阅中,这样您就可以启用信标扫描。试试这个:

let params: GNSSubscriptionParams = GNSSubscriptionParams.init(strategy:
GNSStrategy.init(paramsBlock: { (params: GNSStrategyParams!) -> Void in
params.includeBLEBeacons = true;
}))
subscription = messageMgr.subscriptionWithParams(params,
messageFoundHandler:{[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()
}
})

信标扫描默认关闭,因为 iOS 会在首次打开信标扫描时向用户显示位置权限对话框,这对于使用附近库但不扫描信标的应用来说是 Not Acceptable 。

感谢您反馈有关 github 示例未显示如何扫描信标的问题。我会考虑添加它。

关于ios - swift nearby api找不到信标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35118582/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com