Тестирование CoreBluetooth - PullRequest
       34

Тестирование CoreBluetooth

0 голосов
/ 21 декабря 2018

Я пытаюсь начать работу с Bluetooth на iOS, чтобы заставить два соседних устройства обмениваться данными, используя CoreBluetooth.

Насколько я понимаю, одно устройство должно играть роль периферийного устройства, а другое -одна роль центральной.

Я начал с написания крошечного приложения, чтобы играть роль периферийного устройства.Вот соответствующий код:

import UIKit
import CoreBluetooth

class ViewController: UIViewController,CBPeripheralManagerDelegate {
    let serviceOne_UUID = CBUUID(string:"FB694B90-F49E-4597-8306-171BBA78F846"),
    svcOneChrcOne_UUID = CBUUID(string:"EB6727C4-F184-497A-A656-76B0CDAC633A")
    var cbPerifMngr:CBPeripheralManager!, mutaSRVC:CBMutableService!,
    svcOneCharacOne:CBMutableCharacteristic!

    override func viewDidLoad() {
        super.viewDidLoad()

        cbPerifMngr = CBPeripheralManager(delegate: self, queue: nil)
    }


    // CBPeripheralManagerDelegate protocol implementation.

    func peripheralManagerDidUpdateState(_ peripheral: CBPeripheralManager) {
        if peripheral.state == .poweredOn {
            mutaSRVC = CBMutableService(type: serviceOne_UUID, primary: true)
            svcOneCharacOne = CBMutableCharacteristic(type: svcOneChrcOne_UUID,
                                                      properties: .read, value: nil, permissions: .readable)
            mutaSRVC.characteristics = [svcOneCharacOne]
            cbPerifMngr?.add(mutaSRVC)
        }
    }


    func peripheralManager(_ peripheral: CBPeripheralManager, didAdd service: CBService, error: Error?) {
        if error != nil {
            print("Error in \(#function) :\n\(error!)")
        } else {
            cbPerifMngr.startAdvertising([CBAdvertisementDataServiceUUIDsKey:service.uuid])
        }
    }


    func peripheralManagerDidStartAdvertising(_ peripheral: CBPeripheralManager, error: Error?) {
        if error != nil {
            print("Error in \(#function) :\n\(error!)")
        }
    }
}

Мой вопрос на данный момент: достаточно ли этого, чтобы другое приложение, играющее роль централизованного общения, взаимодействовало с ним или нет.И если это не так, что мне нужно добавить, чтобы создать минимальное периферийное приложение?

...