Получить данные с устройства iOS с помощью Bluetooth в Swift - PullRequest
0 голосов
/ 01 мая 2020

Я работаю над приложением, которое должно получить информацию о другом устройстве Bluetooth, когда оно начинает сканирование соседних устройств. Мне удалось получить несколько, и я застрял на нескольких значениях, которые я не получаю.

Значения, которые необходимы. 1. UUID 2. rssi 3. txpower 4. Имя обнаруженного устройства 5. данные 6. расстояние 7. время 8. ма c адрес

Из которого мне удалось получить UUID, rssi, обнаруженное устройство Имя и время.

Я не могу понять, как получить txpower, data, distance и ma c address.

Данные должны быть в строковом формате.

Ниже приведен мой код и вывод.

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>

Пожалуйста, помогите мне получить эти данные, я искал inte rnet, но не сделал не найти подходящий ответ. Следовательно, разместив его здесь

TIA

1 Ответ

0 голосов
/ 01 мая 2020

MA C адрес не предоставляется прикладному уровню в iOS из-за конфиденциальности.

Мощность TX отфильтровывается в объявлении, т. Е. Также не подвергается воздействию прикладного уровня.

Так что это просто невозможно на iOS, извините.

Ура!

...