2012-07-03 13 views
5

Ich freue mich, Anwendung für iPhone zu schreiben, die in der Lage sein wird, Radio und CD-Player im Auto zu steuern. Radio und Player verfügen über eine Bluetooth-Verbindung.Steuerung Bluetooth-Audiogerät mit iPhone

Ich begann diese Frage, um alle Informationen zu erhalten, die ich für diesen einen Ort brauche. Ich habe ein paar Fragen, aber wenn Sie etwas finden, das ich nicht wichtig für mich gebeten habe, diese Anwendung zu entwickeln, lassen Sie es mich bitte wissen.

Ich habe gelesen, über AVRCP-Profil und Bluetooth-Gerät im Auto unterstützt AVRCP 1.3, das ist gut genug für mich, mit Blick auf Kontrollen, die in dieser Protokoll-Version durchgeführt werden können.

Ich lese viel über Leute sagen "Apple-Gerät kann nur miteinander interagieren", "Apple-Gerät kann nicht über Bluetooth mit Nicht-Apple-Gerät verbunden werden", "MFi-Programm ist obligatorisch, wenn Sie das tun möchten "," MFi wird nicht benötigt ", etc. Meine erste Frage ist:

1) Ist es sogar möglich, iPhone (4, 4S) mit Radio und CD-Player im Auto über Bluetooth zu paaren und Radiosender und Musik zu steuern mit irgendeiner iPhone Version? Wenn ja, wo liegen die Einschränkungen für eine erfolgreiche Bluetooth-Verbindung?

Es gibt auch sehr wenige Informationen über Rollen, in denen das iPhone funktionieren kann. Für AVRCP gibt es zwei Arten von Rollen: Controller und Zielrolle. Durch das Lesen dieses Papiers: https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf Ich habe keine Antwort auf meine zweite Frage gefunden:

2) Kann iPhone als ein Controller fungieren und alle verfügbaren Befehle in AVRCP 1.3 angegebenen Zielgerät (Radio und CD-Player) ausgeben?

Ich möchte auch über verfügbare Frameworks für dieses spezielle Problem wissen. Ich weiß, dass es mehrere von ihnen gibt, aber wenn jemand den richtigen für mein Problem erkennt, würde ich gerne wissen:

3) Welchen Rahmen für die Interaktion mit dem Zielgerät sollte ich verwenden?

Aus Entwickler Sicht, bin ich auch in verfügbaren APIs für die Interaktion mit verbundenen Bluetooth-Gerät interessiert. Da ich meine eigene Anwendung mache und Tasten Aktionen zuweise, muss ich innerhalb von Methoden, die Tasten zugewiesen sind, die Nachrichten an das Zielgerät senden. Meine nächste Frage ist also:

4) Weiß jemand, ob es eine Möglichkeit gibt, Befehle an das Zielgerät (Start/Stopp/Pause/Vorwärts/Rückwärts usw.) als Teil einer in XCode bereitgestellten API zu senden jede Nachricht, die ich über Bluetooth an das Zielgerät senden möchte, muss ich gemäß der Protokolldokumentation erstellen (mache die gesamte Nachricht (Header, Body, Befehlsteil, etc) selbst)?

AVRCP war mein Gedanke für die Durchführung dieser Anwendung. Wenn ich falsch liege, lass es mich wissen. Bluetooth hat verschiedene Profile und wenn Nachrichten von einem Gerät gesendet werden, verarbeitet das Profil, soweit ich weiß, Nachrichten und interpretiert sie und liefert sie an das Zielgerät, damit das Zielgerät es verstehen kann. Ich verstehe nicht, wie eine Nachricht, die vom iPhone zum Zielgerät gesendet wird, von dem Moment an verarbeitet wird, an dem ich sie von meinem Objective-C (oder C) -Code gesendet habe. Das ist der Hauptbezweifelt, den ich habe, und es hängt mit Frage 4 - zusammen, ich muss rohe Nachrichten in korrektem Format machen, um AVRCP Befehle an das Gerät zu senden, oder ich kann eine API verwenden, die diese Nachrichten als AVRCP erkennt andere Art) und liefern es zum Zielgerät?

Diese letzte Frage (wenn ich nehme, es gibt irgendeine positive Antwort auf alle vorherigen) betrifft mich am meisten aus Sicht der Entwickler. Also, wenn jemand vielleicht Erfahrung mit diesem spezifischen Problem hatte, würde ich jede Art von Antwort oder Beratung zu schätzen wissen.

Ich freue mich wirklich auf Ihre Antworten. Ich hoffe, dass zu diesem Thema eine konstruktive und nützliche Diskussion beginnt und viele nützliche Informationen geschrieben werden.

Mit freundlichen Grüßen.

+0

# 1: @javieralog - Danke, dass Sie sich über MFi und BT4.0 LE Geräte geklärt haben. – uerceg

Antwort

5

Sie können es 4,0 CoreBluetooth, wenn Ihr Gerät (CD-Player) ist Bluetooth 4.0 LE

compliant
+0

Vielen Dank für die schnelle Antwort. Ich habe gelesen, dass nur iPhone 4S Bluetooth 4.0 LE kompatible Geräte unterstützt und frühere Versionen nicht. Ist das wahr? Und noch eine Frage: Wenn ein Gerät nicht Bluetooth 4.0 LE-konform ist, sagst du, dass es UNMÖGLICH ist, es mit JEDER iPhone-Version so zu steuern, wie ich es möchte? Danke im Voraus. – uerceg

+0

gilt für den iPhone-Teil. Nicht sicher, ob das für das iPad stimmt; Ich denke, dass neues iPad BT4.0 mit LE-Modus ist – javieralog

+0

sagst du, dass es unmöglich ist, es mit JEDER iPhone-Version in der Weise zu steuern, die ich will? Ja, außerhalb des MFi-Programms – javieralog

0

Höchstwahrscheinlich werden Sie werden nicht in der Lage sein, es zu tun, auch wenn Sie Ihr Auto CD-Player hat BLE tun verwenden.

Mit Core Bluetooth-Geräten als "Central" (Client) oder "Peripheral" (Server) fungieren, hat das Peripheriegerät "Daten" und bietet Dienste mit Merkmalen (Variablen). Der zentrale (Client) liest Daten aus dem Peripheriegerät oder abonniert Benachrichtigungen.

Ihre einzige Chance besteht darin, eine Verbindung zum CD-Player als Peripheriegerät (Server) herzustellen, während Ihr iPhone das zentrale Gerät (Client) ist. In diesem Fall muss der CD-Player Dienste bereitstellen, mit denen Sie ihn steuern können. Um ehrlich zu sein, ich weiß nicht, wie das geht, da das zentrale (das iPhone) Daten liest und Benachrichtigungen von der Peripherie empfängt, nicht umgekehrt.

Das Umkehren von Rollen, die Implementierung von iPhone als Peripheriegerät ist sinnvoll, aber es gibt keinen vordefinierten Bluetooth LE-Dienst für die Fernbedienung, sodass Ihr CD-Player nicht weiß, welche Dienste von Ihnen zu erwarten sind. Es funktioniert möglicherweise mit HID-Service (Human Interface Device), im Allgemeinen für Tastaturen und Maus verwendet, aber gemäß dieser post ist die HID von Apple auf iOS verboten.

Verwandte Themen