【问题标题】:Get Data from iOS device using Bluetooth in Swift在 Swift 中使用蓝牙从 iOS 设备获取数据
【发布时间】:2020-08-16 08:39:03
【问题描述】:

我正在开发一个应用程序,当它开始扫描附近的设备时,它需要获取另一个蓝牙设备的详细信息。我设法得到了一些,但我被困在一些我没有收到的价值观上。

需要的值。 1.UUID 2. RSS 3. txpower 4. 检测到的设备名称 5.数据 6. 距离 7.时间 8.mac地址

我已经设法从中获取了 UUID、rssi、检测到的设备名称和时间。

我不知道如何获取 txpower、数据、距离和 mac 地址。

数据应为字符串格式。

下面是我的代码和输出。

func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
    let rssi = RSSI.stringValue
    print("UUID:",uuid)
    print("Device Name:",peripheral.name!)
    print("rssi:",rssi)
    print("Ad Data:", advertisementData)
    print("time:", advertisementData["kCBAdvDataTimestamp"]!)
    print("peripheral:", peripheral)
    if let power = advertisementData["kCBAdvDataTxPowerLevel"] as? Double{
    print("power:", power)
    print("Distance is ", pow(10, ((power - Double(truncating: RSSI))/20)))
 }

输出

UUID: A863C72A-DCB7-43DB-9431-5F0107CB3474
Device Name: iPhone 7
rssi: -12
Ad Data: ["kCBAdvDataTimestamp": 610053944.490985, "kCBAdvDataIsConnectable": 1]
time: 610053944.490985 
peripheral: <CBPeripheral: 0x2808d0780, identifier = 9511F67B-9903-7D50-467A-BAAF4ECA1479, name = iPhone 7, state = disconnected>

请帮我获取这些数据,我已经搜索了互联网但没有找到任何相关的答案。所以发在这里

TIA

【问题讨论】:

    标签: ios swift bluetooth bluetooth-lowenergy cbcentralmanager


    【解决方案1】:

    由于隐私原因,MAC 地址不会暴露给 iOS 中的应用层。

    TX 功率在广告中被过滤掉,即,也不暴露给应用层。

    所以这在 iOS 上根本不可能,抱歉。

    干杯!

    【讨论】:

      猜你喜欢
      • 2014-05-05
      • 2018-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 2014-05-05
      • 1970-01-01
      相关资源
      最近更新 更多