我正在使用 Google 的 Nearby 并尝试在不使用 BLE 或 Classic BT 的情况下(仅)使用 discoveryMediums Audio。原因是因为我希望发现发生在一个房间里,而不是通过墙壁流血。目前我有这个代码。如果我在运行该应用程序的 iPhone 上关闭 BT,我会被告知它是 Nearby 工作所必需的。我一定遗漏了一些基本的东西。
func startSharingWithName(name: String) {
if let messageMgr = self.messageMgr {
// Show the name in the message view title and set up the Stop button.
messageViewController.title = name
// Publish the name to nearby devices.
let pubMessage: GNSMessage = GNSMessage(content: name.dataUsingEncoding(NSUTF8StringEncoding,
allowLossyConversion: true))
publication = messageMgr.publicationWithMessage(pubMessage)
// Subscribe to messages from nearby devices and display them in the message view.
let params: GNSSubscriptionParams = GNSSubscriptionParams.init(strategy:
GNSStrategy.init(paramsBlock: { (params: GNSStrategyParams!) -> Void in
params.discoveryMediums = .Audio
params.includeBLEBeacons = false
}))
subscription = messageMgr.subscriptionWithParams(params,
messageFoundHandler:{[unowned self] (message: GNSMessage!) -> Void in
self.messageViewController.addMessage(String(data: message.content, encoding:NSUTF8StringEncoding))
},
messageLostHandler: {[unowned self](message: GNSMessage!) -> Void in
self.messageViewController.removeMessage(String(data: message.content, encoding: NSUTF8StringEncoding))
})
}
}`