gpt4 book ai didi

ios - 使用 iPhone 作为 iBeacon 发射器

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:02:28 31 4
gpt4 key购买 nike

我正在尝试将我的 iPhone 设置为广播 iBeacon 信号以供另一部 iPhone 接收。本应接收信号的 iPhone 可以正常工作,但我无法让另一部 iPhone 广播信号。

我正在学习本教程:https://www.hackingwithswift.com/example-code/location/how-to-make-an-iphone-transmit-an-ibeacon

这是我的代码:

import CoreBluetooth
import CoreLocation

class iBeaconTransmission: NSObject, CBPeripheralManagerDelegate {

var localBeacon: CLBeaconRegion!
var beaconPeripheralData: NSDictionary!
var peripheralManager: CBPeripheralManager!

func initLocalBeacon() {
if localBeacon != nil {
stopLocalBeacon()
}

let localBeaconUUID = "placeholder"
let localBeaconMajor: CLBeaconMajorValue = 123
let localBeaconMinor: CLBeaconMinorValue = 456

let uuid = NSUUID(UUIDString: localBeaconUUID)!
localBeacon = CLBeaconRegion(proximityUUID: uuid, major: localBeaconMajor, minor: localBeaconMinor, identifier: "placeholder")

self.beaconPeripheralData = self.localBeacon.peripheralDataWithMeasuredPower(nil)
self.peripheralManager = CBPeripheralManager(delegate: self, queue: nil, options: nil)
}

func stopLocalBeacon() {
peripheralManager.stopAdvertising()
peripheralManager = nil
beaconPeripheralData = nil
localBeacon = nil
}

func peripheralManagerDidUpdateState(peripheral: CBPeripheralManager) {
print("Peripheral Manager")
if peripheral.state == .PoweredOn {
print("Transmitting")
peripheralManager.startAdvertising(beaconPeripheralData as! [String: AnyObject]!)
} else if peripheral.state == .PoweredOff {
peripheralManager.stopAdvertising()
}
}
}

另外请注意,位置服务已设置为始终授权。

"Peripheral Manager"也从未被打印出来,因此其中的函数由于某种原因没有被调用。

谢谢!

最佳答案

已修复。我将代码移到 View Controller 中,并在 viewDidLoad 函数中调用了 initLocalBeacon()。

关于ios - 使用 iPhone 作为 iBeacon 发射器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35680718/

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