测距后有啥方法可以使用核心蓝牙连接信标
Posted
技术标签:
【中文标题】测距后有啥方法可以使用核心蓝牙连接信标【英文标题】:Is there any way to connect beacon using Core Bluetooth after Ranging测距后有什么方法可以使用核心蓝牙连接信标 【发布时间】:2015-06-03 09:03:45 【问题描述】:我正在我的应用程序中使用带有 UUID、Major 和 Minor 的 Core Location 进行信标测距。测距后,我需要使用 Core Bluetooth api 连接该信标。我在我的应用程序中使用了 estimote 信标。
【问题讨论】:
如何在连接到信标之前开始测距? 我同意@iAnurag 的观点。对于测距,您必须创建区域对象并开始监控。一旦开始监视,则只会调用委托方法。你想实现什么功能?? 我正在为测距创建 CLBeacon 区域。测距后,我需要使用 Core Bluetooth 连接该信标以修改其特性。 (感谢@iAnurag,@iAKST)。 您是否尝试修改 UUID,主要和次要? 我正在尝试修改他们的 UUID、Major、Minor 和 tx power of beacon。 @iAnurag 【参考方案1】:ESTBeaconConnection 类正是您要寻找的。您可以使用 initWithBeacon 初始化程序并将您从范围中获得的 CLBeacon 对象传递给它:
let bc = ESTBeaconConnection(beacon: myBeacon,
delegate: self,
startImmediately: true)
这将启动连接过程。
委托应实现ESTBeaconConnectionDelegate 协议。成功建立连接后,您将收到对beaconConnectionDidSucceed 的呼叫,您可以开始向信标写入新设置:
func beaconConnectionDidSucceed(connection: ESTBeaconConnection!)
connection.writeMajor(123) (newMajor, error) in
if (error != nil)
println("successfully wrote the new major: \(newMajor)")
else
println("didn't write the new major, error was \(error)")
connection.disconnect()
实现beaconConnectionDidFailWithError
委托也是一个好主意——如果有什么事情发生了,你会知道的。
最后,由于您只能连接和更改自己的信标设置,因此您需要在尝试连接之前进行身份验证:
ESTCloudManager.setupAppID("appid", andAppToken: "app token")
您可以在https://cloud.estimote.com 上生成应用令牌。
【讨论】:
以上是关于测距后有啥方法可以使用核心蓝牙连接信标的主要内容,如果未能解决你的问题,请参考以下文章