也许这个问题重复,但我的情况与其他情况不同。 我有自己的蓝牙套件。它会在工具包上单击按钮时输入制造商特定数据。我从android获得制造商数据。但我无法从ios应用程序访问。
我听广告数据如下:
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
for (key,value) in advertisementData{
print("key:\(key) value:\(value)")
}
}
并记录结果:
key:kCBAdvDataIsConnectable value:1
key:kCBAdvDataServiceUUIDs value:(1802)
key:kCBAdvDataLocalName value: R009
顺便说一句,我尝试使用CoreLocation api来查看我的设备。
func startScanBeacons() {
let uuid = UUID(uuidString: "b9407f30-f5f8-466e-aff9-25556b57fe6d")!
let beaconRegion = CLBeaconRegion(proximityUUID: uuid, identifier: "mybeacon")
beaconRegion.notifyOnEntry = true
beaconRegion.notifyOnExit = true
locationManager.startMonitoring(for:beaconRegion)
locationManager.startRangingBeacons(in: beaconRegion)
}
但它没有用。我的设备未显示为信标。经过对stackoverlow的一些研究后,有人说:这是不可能的。 你可以看一下这个答案:https://stackoverflow.com/a/46373130/3170065。 但必须有一个解决方法来获取制造商数据。我该怎么做才能克服这个问题?我们可以自定义固件。