ios - 您是否可以在不请求设备和广播用户许可的情况下向附近的设备广播数据?

标签 ios swift bluetooth broadcast multipeer-connectivity

我正在尝试制作一个应用程序作为一种爱好,我需要知道,是否可以在不请求每个设备许可的情况下广播到所有附近的设备? 如果可以要求用户接受所有传入连接并向设备发送连接请求,而不需要用户选择哪个设备,这对我来说会很棒。 我发现您可以使用 multipeer 连接最多 7 个对等点,但用户必须选择他想要连接的每个设备。 附近广播的任何选项都会对我有所帮助, 感谢您的帮助! :)

最佳答案

接受邀请很简单,无需提示广告商接受,只需将 invitationHandler 设置为 true 即可。

例如,在我的实现中,我有一个 MPManager 类:

func advertiser(advertiser: MCNearbyServiceAdvertiser, didReceiveInvitationFromPeer peerID: MCPeerID, withContext context: NSData?, invitationHandler: (Bool, MCSession) -> Void) {
    self.invitationHandler = invitationHandler

    delegate?.invitationWasReceived(peerID.displayName)
}

以及委托(delegate)方法:

func invitationWasReceived(fromPeer: String) {
       self.appDelegate.cManager!.invitationHandler(true, self.appDelegate.cManager!.session)
       self.connectingLabel.text = "Connecting"
}

对于浏览器端,您可以类似地自动向它找到的任何对等点发送邀请,问题是何时停止搜索对等点,并在它们全部连接后继续您想做的事情。

你查过PeerKit吗? ?我将自己定位为零配置方法。我简单地检查了一下我在做什么,但不太符合我的需要。也许它适合你。

关于ios - 您是否可以在不请求设备和广播用户许可的情况下向附近的设备广播数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34209605/

相关文章:

Android:添加 ScanCallback 让我 "Unfortunately, App has stopped."找不到 MainActivity

ios - 快速的约束

ios - SLComposeViewController 是否允许设置位置字段?

ios - Ios App如何从后台转到前台

android - 使用二维码作为带外 (OOB) channel 的蓝牙安全简单配对 (SSP)

ios - 我需要将哪些 serviceUUID 传递给 retrieveConnectedPeripheralsWithServices 以快速获取任何连接的设备?

ios - 如何在后台任务中的 AVQueuePlayer 中的 AVPlayerItems 之间进行延迟?

ios - UITextfield 作为 float 通过 segue 传递到 UILabel

ios - 快速比较两个任意类型值的最佳方法

ios - 在 ScrollView 中使用 2 个垂直堆栈 View ,根据内部 View 增加高度