Bluetooth Classic mit iOS ExternalAccessoryFramework

8

Ich bin bei Entwicklung eines iOS-App suchen, die mit Bluetooth klassischen Geräten mit iOS Unterstützte Bluetooth-Profile kommunizieren

Wie ich es verstehe, sollte dies mit dem externen Zubehör-Framework möglich sein und keine Teilnahme am MFi-Programm erfordern. Vom MFi FAQ :

  

Welche Arten von Zubehör und Technologien sind nicht Teil des MFi?   Programm?

     

Zubehör, das keine der lizensierten MFi-Technologie verwendet   oben sind nicht Teil des MFi-Programms. Zum Beispiel:

     

So weit, so gut. Der Externe Zubehörrahmen doc Einleitung sagt (Hervorhebung hinzugefügt):

  

Das externe Zubehör-Framework bietet Unterstützung für die Kommunikation   mit externer Hardware verbunden mit einem iOS-basierten Gerät durch die   30-poliger Dock-Anschluss oder kabellos über Bluetooth . Anwendungen, die   Unterstützung von externem Zubehör muss sicher sein, ihre zu konfigurieren   Info.plist Datei korrekt. Insbesondere müssen Sie die   UISupportedExternalAccessoryProtocols Schlüssel zum Deklarieren der spezifischen   Hardware-Protokolle, die Ihre Anwendung unterstützt.

Wo werden die Werte für die oben genannten "spezifischen Hardware-Protokolle" dokumentiert? Ich gehe davon aus, dass dies sich auf Bluetooth-Profile bezieht?

FWIW, ich habe heruntergeladen und versucht Apples EADemo App laufen . Es umfasst die Werte com.apple.p1 und com.apple.p2 für die UISupportedExternalAccessoryProtocols Schlüssel. Wenn ich die EADemo-App auf einem iPod touch / iOS8.1.3 der 4. Generation betreibe, werden keine BT-Geräte gefunden. Es sollte den Jawbone-Lautsprecher finden, mit dem es verbunden ist.

Zur Vereinfachung habe ich auch eine sehr kleine Beispiel-App erstellt, die auf EAAccessoryDidConnectNotification-Benachrichtigungen wartet:

%Vor%

Wenn ich den Code auf dem iPod Touch starte, werden keine Benachrichtigungen empfangen. Während die App läuft Ich habe den Jawbone-Lautsprecher ausgeschaltet und dann eine Verbindung hergestellt. (Ich kann bestätigen, dass es eine Verbindung herstellt, indem ich Einstellungen- & gt; Bluetooth ansehe).

Ich habe den Schlüssel UISupportedExternalAccessoryProtocols zur App plist hinzugefügt und das Werte-Array leer gelassen und com.apple.p1 und com.apple.p2 (wie in der EADemo-App) hinzugefügt.

Irgendwelche Ideen, was ich vermisse? Wie kann eine iOS App mit einem Bluetooth-Gerät kommunizieren?

    
TomH 08.02.2015, 18:50
quelle

1 Antwort

8

TL; DR: Das EA Framework funktioniert nur mit MFi Geräten.

Vom technischen Entwickler-Support von Apple:

  

Hallo Tom,

     

Als Antwort auf Ihre Fragen bezüglich der Nutzung des Externals   Zubehörrahmen

     

Q1. Wenn ich versuche, eine programmatische Verbindung zu einem BT-Gerät herzustellen   Jedes dieser Profile, die das EA-Framework verwenden, muss das Gerät MFi sein   konform? Antwort - ja. Das Accessoire muss ein spezielles implementieren   Protokoll zum Identifizieren von Daten, die über das ausgewählte gesendet / empfangen werden sollen   Transport als EA unterstützte Daten.

     

Q2. Als Beispiel kann ich Code schreiben, der das EA-Framework verwendet, um eine Verbindung herzustellen   zu einem Bluetooth-Lautsprecher, der nicht MFi-kompatibel ist? Antwort - die meisten   Klassische Bluetooth-Lautsprecher verwenden AVRCP / A2DP zum Transport von Audiodaten   über Bluetooth mit einem iPhone. Solche Daten sind völlig getrennt von   die Daten, die für die Unterstützung externer Zubehörteile markiert sind. Der EA-Rahmen   kann nicht verwendet werden, um auf die über AVRCP / A2DP gesendeten Daten zuzugreifen. Einige jedoch   Sprecher implementieren einen separaten EA-Datenaustausch, der funktioniert   mit einer EA-Framework-Anwendung. Jedoch die direkte Antwort - nein. Ein   Die EA Framework-App funktioniert optional mit einem MFI-kompatiblen Zubehör -   noch mehr von einer Teilmenge - eine für die Verwendung mit EA entwickelt.

     

Kommentar - Der Jawbone-Lautsprecher erscheint nicht in UITableView im EADemo   Anwendung. Antwort - das ist richtig. Der Jawbone-Lautsprecher ist kein   EA Zubehör. Das Nike Fuelband ist jedoch ein EA-Zubehör. Ein   wichtige Überlegung - um das EA Framework zu verwenden, müssen Sie damit arbeiten   der Zubehöranbieter, um das von der. unterstützte Datenprotokoll zu lernen   Zubehör - wie die Daten beim Empfangen und Senden von Daten aussehen.

    
TomH 12.02.2015, 15:03
quelle