2016-07-25 9 views
9

mam podłączone urządzenia skanera kodów kreskowychOdzyskaj sparowanych urządzeń, które są podłączone przez interfejs Bluetooth w iOS

Barcode Scanner Information

Chcę wiedzieć sparowane status niego. Niezależnie od tego, czy jest połączony z urządzeniem, czy nie.

- (void) centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI 
    { 
     self.connectingPeripheral = peripheral;   
     NSLog(@"@@@@@@Peripheral Name is:%@ Identifier:%@ Services:%@",peripheral.name,peripheral.identifier,peripheral.services); 
     [self.bluetoothManager connectPeripheral: self.connectingPeripheraloptions: nil]; 
} 

Paired List

Dostaję informacje o Mac, które są w pobliżu i włączona. Ale nie otrzymuję informacji o skanerach kodów kreskowych w tej metodzie.

Potrzebuję, czy skaner kodów kreskowych jest podłączony do urządzenia, czy nie.

każdy może sugerować, jak znaleźć łączność skanera kodów kreskowych.

Doceniam twoją odpowiedź, dzięki.

+0

Jesteś pewien, że to urządzenie o niskiej energii Bluetooth? Nie jest jasne na stronie informacyjnej. – Larme

+0

Aktualizacja: widziałem na dokumencie (http://www.barcodedatalink.com/media/pdf/Motorola_CS3000_Brochure.pdf) "Bluetooth, Class 2, wersja 2.1 + Enhanced Data". Nie znajdziesz go w CoreBluetooth (tylko dla Bluetooth Low-Energy). Możesz go znaleźć z ExternalAccessory.framework. – Larme

+0

@Larme, czy możesz zaproponować rozwiązanie inne niż podstawowy bluetooth i ExternalAccessory, ponieważ nie otrzymują one szczegółowych informacji na temat skanera kodów kreskowych. – Vidhyanand

Odpowiedz

0

Jak wspomniano w komentarzach, Core Bluetooth przeznaczony jest dla technologii Bluetooth o niskim poborze energii, natomiast skaner kodów kreskowych to Bluetooth 2.1 (klasyczny). Aby to zadziałało, musisz przynajmniej korzystać z IOBluetooth.

Sprawdź numer IOBluetooth framework. Zła wiadomość jest taka, że ​​Apple jest dość restrykcyjny w stosunku do klasycznego Bluetooth, ale mam nadzieję, że jest coś, co możesz zrobić. Na pierwszy rzut oka nie widziałem żadnego odpowiednika dla Core Bluetooth.

+1

Czy nie jest "IOBluetooth" tylko dla aplikacji mac? – thesummersign

+0

IOBluetooth framework jest dla OSX, a nie iOS – JBA

3
  1. Aplikacja Ustawienia może wykrywać niemal wszystkie rodzaje urządzeń Bluetooth, ale system powiadamia tę aplikację tylko o urządzeniach BLE.
    Uruchom ponownie skaner i upewnij się, że iPhone i skaner nie są połączone z żadnymi urządzeniami.Odtwórz skaner w sposób wykrywalny.
    Jeśli aplikacja Ustawienia znajdzie skaner, podczas gdy wersja demonstracyjna nie jest, skaner nie jest urządzeniem BLE i nie jest obsługiwane przez iOS od iPhone 4s.

  2. Jeśli skaner jest urządzeniem BLE, należy wykonać dodatkowe czynności, aby dowiedzieć się, czy są one połączone.

    • Można sprawdzić state na odkrytej CBPeripheral w func centralManager(_ central: CBCentralManager, didDiscoverPeripheral peripheral: CBPeripheral, advertisementData advertisementData: [String : AnyObject], RSSI RSSI: NSNumber).

    • Sklep CBPeripheral's identifier, przed połączeniem z nim. Użyj tego identyfikatora w func retrievePeripheralsWithIdentifiers(_ identifiers: [NSUUID]) -> [CBPeripheral]. Sprawdź, czy Twój skaner znajduje się w tablicy zwrotów.

Jeśli nie przechowywać identifier, nie ma możliwości, że można uzyskać dostęp do urządzenia podłączonego BLE.

4

Przeczytaj poniższą odpowiedź:

https://stackoverflow.com/a/11128869/5178107

może pomóc. Co więcej, CoreBluetooth pozwala tylko na dostęp do urządzeń Bluetooth Low Energy. Możesz sparować te urządzenia, jeśli potrzebujesz szyfrowania, ale zazwyczaj tego nie robisz.Jednak nie ma interfejsu API do wyświetlania sparowanych urządzeń - musisz odkryć urządzenie (urządzenia), które oferuje interesującą Cię usługę, i przedstawić listę, jeśli to konieczne, używając własnego interfejsu użytkownika w aplikacji. Po zidentyfikowaniu urządzenia docelowego można zainicjować połączenie.

Powiązane problemy