Как получить свойства или имя двух или более Bluetooth-клавиатур (клавиатура) - PullRequest
0 голосов
/ 18 февраля 2020

Как получить свойства или имя двух или более парных клавиатур BlueTooth (клавиатура Belkin ..)

Я создаю простой тестовый проект, в котором присутствует только метка. Две клавиатуры Bluetooth (клавиатура Belkin) подключены к iPad. Я хочу найти имя каждого устройства или любые свойства или любой уникальный путь тех устройств, которые я могу показать его имя при нажатии любой клавиши с пин-панели. Я хочу найти входные данные с какого устройства. Я попытался использовать ядро ​​Bluetooth, но он показывает только периферийные устройства, не показывающие имя моей клавиатуры Bluetooth. Я также ищу IOBluetooth, но это для macOS. Я требую использовать его в iOS swift. Пожалуйста, помогите мне.

пробовал таким образом ...

// Использование внешнего аксессуара

import UIKit

import ExternalAccessory

class ViewController: UIViewController 

{

@IBOutlet weak var tableView: UITableView!

var manager = EAAccessoryManager.shared()

override func viewDidLoad() {
     super.viewDidLoad()

     let a = manager.connectedAccessories.count
     print(a)// print 0

NotificationCenter.default.addObserver(self, selector: #selector(deviceConnected), name: NSNotification.Name.EAAccessoryDidConnect, object: nil)

}

@objc func deviceConnected(notification: NSNotification) 

{

 if let acc = notification.userInfo![EAAccessoryKey] 
{
showAccessoryInfo(accessory: acc as! EAAccessory)
print("Connected:", acc)
      }
   tableView.reloadData()
  }

 func showAccessoryInfo(accessory: EAAccessory) 
   {
 print("title\(accessory.manufacturer) and name :\(accessory.name) and message \(accessory.description)")
    }


 func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
    }

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return manager.connectedAccessories.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
         print("10")
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
      let acc = manager.connectedAccessories[indexPath.row]
              cell.textLabel?.text = "\(acc.manufacturer) \(acc.name)"
              cell.detailTextLabel?.text = "\(acc.modelNumber) \(acc.serialNumber)\n fr:\(acc.firmwareRevision) hr: \(acc.hardwareRevision)"
         print("11")
      return cell
}
func tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith indexPath: IndexPath) {
      let acc = manager.connectedAccessories[indexPath.row]
    showAccessoryInfo(accessory: acc)
         print("12")
}


}

1 Ответ

0 голосов
/ 21 февраля 2020

Вы можете использовать EAAccessoryManager.shared().connectedAccessories для получения подключенных устройств.

Проверьте, есть ли у возвращенного EAAccessory то, что вам нужно

https://developer.apple.com/library/prerelease/ios/documentation/ExternalAccessory/Reference/EAAccessoryManager_class/index.html# // apple_ref / occ / instp / EAAccessoryManager / connectedAccessories

...