Я пытаюсь настроить свой 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()
}
}
}
Еще одно замечание: службы определения местоположения уже настроены на постоянную авторизацию.
«Диспетчер периферийных устройств» также никогда не печатается, поэтому функция, которая находится внутри, по какой-то причине не вызывается.
Спасибо!
placeholder
в качестве uuid? И какую отладку вы сделали. - person Wain   schedule 28.02.2016