2009-06-30 8 views
27

Ich versuche herauszufinden, ob ein iPhone eine Verbindung zu einem anderen Nicht-iPhone-Gerät über WLAN oder Bluetooth herstellen kann und widersprüchliche Informationen angezeigt bekommen. Vieles von dem, was ich gefunden habe, war vor der Version 3.0 des SDK herausgekommen, als es sicherlich nicht möglich war. Betrachtet man Stack   Überlauf Fragen, wie Can the iPhone 3.0 SDK provide full access to Bluetooth devices (headsets)? erwähnen Sie können nicht mit einem beliebigen Gerät verbinden, es sei denn, es ist Teil der "Works für iPhone" Gerät. Benötige ich Hardware, die Teil dieses Programms ist?Wie kann ein iPhone über WLAN oder Bluetooth auf ein anderes Nicht-iPhone-Gerät zugreifen?

Blick durch die Apple-Dokumentation, Peer-to-Peer Connectivity, es erwähnt Verbindung zweier iPhones, kein iPhone zu einem anderen Bluetooth-Gerät. Dann gibt es Artikel wie iPhone SDK focus: Bluetooth enhancements, die dieses Zitat

... und mit dem neu angekündigten „Standard Support“ beinhaltet sollte die Dateiübertragung zwischen dem iPhone und einem Computer sowie zwischen in der Nähe iPhones

erlauben

eine weiterer Stapel   Überlauf Frage erwähnt GameKit in iPhone SDK 3.0, Bonjour und the Apple documentation for Bonjour spricht über Bonjour-Geräte anschließen, kann aber ein iPhone zu jedem Bonjour-Gerät anschließen? Muss es eine Wi-Fi Verbindung haben, oder kann es Bluetooth benutzen?

Auch wenn ich Bluetooth verwenden könnte, um eine Verbindung mit einem anderen Gerät herzustellen, wird es auf iPhones und iTouches der ersten Generation nicht verfügbar sein, glaube ich. Ist das korrekt? Ich denke an eine iPhone-Anwendung, die mit anderen Nicht-iPhone-Geräten in der Umgebung kommunizieren müsste, wahrscheinlich mit Bluetooth, aber möglicherweise mit einer direkten drahtlosen Verbindung. Was sind die Möglichkeiten und Grenzen dieses Ansatzes? Ist es nicht möglich, ein iPhone mit einem beliebigen Bluetooth-Gerät verbinden zu lassen? Muss das andere Gerät in einem drahtlosen Bonjour-Netzwerk sein? Ich versuche herauszufinden, ob das überhaupt möglich ist oder ob es sich nicht lohnt.

Antwort

12

Die einzige Möglichkeit, mit anderen Bluetooth-Geräten über die External Accessory Rahmen in iPhone OS 3.0 zu kommunizieren, wenn sie in dem Made for iPod accessory Programm. Obwohl sie über Standard-Bluetooth-Verbindungen kommunizieren, benötigen Zubehörteile spezielle Hardware, um den Datenstrom vom iPhone/iPod touch verarbeiten zu können. Leider bedeutet dies, dass Ihre Idee, mit generischen Bluetooth-Geräten zu kommunizieren, nicht mit iPhone OS 3.0 funktioniert.

Wenn die Geräte, mit denen Sie sprechen möchten, über Wi-Fi Bonjour-erkennbar sind, müssen sie nicht Teil des Programms Made for iPod sein. Das klingt jedoch nicht nach Ihrem Fall.

Entwickler von Drittanbietern können in naher Zukunft Dongle herstellen, die über den 30-poligen Dock-Port verbunden sind und den Zugriff auf vorhandene Bluetooth-Geräte ermöglichen. Wenn diese Entwickler ihr Kommunikationsprotokoll geöffnet haben, könnte dies Ihr Ziel der Kommunikation mit diesen Geräten ermöglichen.

+0

Danke für die Info - je mehr ich lese, desto mehr dachte ich, Bluetooth wäre keine praktikable Option, außer wenn die Geräte im Made for iPod-Programm sind. Wie für Bonjour, muss das iPhone/iTouch in einem drahtlosen Netzwerk sein, um ein Bonjour Gerät zu entdecken? Gibt es für Bonjour eine Bereichsbeschränkung oder ist es nur die Reichweite des anderen Geräts? –

+0

Bonjour ist einfach ein Erkennungsprotokoll. Daher ist die Reichweite unabhängig von der Reichweite Ihres Netzwerks. Es ist für den Einsatz in einem lokalen Netzwerk gedacht, so dass das iPhone in einem WiFi-Netzwerk sein muss. Die Geräte selbst könnten jedoch fest verdrahtet oder mit anderen Mitteln mit dem Netzwerk verbunden sein. –

+1

Nein, das iPhone muss nicht auf einem Wifi-Netzwerk sein: Es wird * jedes * Netzwerkgerät verwendet, das auf dem System verfügbar ist - insbesondere: Bluetooth. Ab iOS6 deaktiviert Apple standardmäßig die BT-Suche nach Bonjour (Apples Erklärung (Entschuldigung) für diese Änderung) und die offiziellen Anleitungen zur Problemumgehung https://developer.apple.com/library/ios/qa/qa1753/_index. html # // Apple_ref/doc/uid/DTS40011315) – Adam

1

Sie können NSStream zum Öffnen von IPv4/IPv6 Sockets auf dem iPhone verwenden. Die Geräte, mit denen Sie verbunden sind, müssen nicht unbedingt iPhones sein oder Wi-Fi verwenden. Aufgrund der Anordnung der Netzwerkkommunikationsprotokolle müssen Sie sich nicht darum kümmern, mit welchem ​​Gerät Ihr iPhone kommuniziert.

Bonjour verwendet NSSStream intern. Es ist im Grunde ein raffinierter kleiner Wrapper, der eine automatische Erkennung ermöglicht. Sie müssen das Bonjour-Protokoll auf allen Geräten installiert haben, die am automatischen Erkennungsprozess teilnehmen sollen. Es gibt sogar eine Implementierung für Windows.

+0

Sorry für die vielen Fragen - das zugrunde liegende Problem ist, kann das iPhone eine Verbindung zu einem beliebigen Gerät herstellen. Wenn die App beispielsweise zum Lesen von Stromzählern dient, möchte ich in der Lage sein, in einen Raum zu gehen und eine Verbindung zu einem beliebigen Zähler herzustellen, ohne etwas über einen bestimmten Zähler zu wissen (Bluetooth-ID, IP-Adresse usw.). Es scheint, als wäre das mit Bonjour möglich (wenn die Zähler das Protokoll unterstützten), aber nicht Bluetooth. Ist das korrekt? Um sich mit einem anderen Bonjour-Gerät zu verbinden, müsste sich das iPhone in einem drahtlosen Netzwerk befinden oder über Bluetooth verbunden sein? Es scheint nicht so. –

+0

Wenn ich richtig verstehe, fragen Sie, wie Sie eine Liste aller Bluetooth-Meter in Reichweite Ihres iPhone bekommen könnten? Ich weiß, dass Bluetoth-Geräte einander automatisch erkennen können, aber ich glaube nicht, dass sie Bonjour (Zeroconf) dafür verwenden. Ich bin mir ziemlich sicher, dass das Protokoll selbst Bluetooth-spezifisch ist. Es klingt wie ein ziemlich cooles Projekt! –

+0

Sie möchten vielleicht Zeit in das External Accessory Framework investieren, das mit 3.0 –

0

Als Teil des iPhone OS 3.0 SDK hat Apple angekündigt, Hardware-Zubehör über Bluetooth oder den Dock-Anschluss steuern zu können. Der Dock Connector unterstützt Standardprotokolle (dh Wiedergabe, Pause usw.) sowie alle benutzerdefinierten Protokolle, die der Entwickler implementieren möchte.

Für die Verbindung über Bluetooth können Sie mit anderen iPhones oder anderen Geräten sprechen. Sie können beispielsweise Stereo-Bluetooth verwenden, um kompatible Bluetooth-Stereo-Kopfhörer, Kfz-Freisprechanlagen oder anderes Zubehör anzuschließen.

Soweit was Geräte Bluetooth-Kommunikation unterstützen, sollte alles außer der ersten Generation iPod Touch in Ordnung sein.

Siehe auch Apple's page on iPhone OS accessories.

+1

Das sind alles "Made for iPhone" -Geräte. Ist das die einzige Möglichkeit, sich mit einem Bluetooth-Gerät zu verbinden? Auch gemäß der [Apple Dokumentation] (http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/GameKit_Guide/GameKitConcepts/GameKitConcepts.html#//apple_ref/doc/uid/TP40008304-CH100- SW1), das Bluetooth-Netzwerk wird auf dem ursprünglichen iPhone oder dem iPod Touch der ersten Generation nicht unterstützt. Es wird auch nicht in Simulator unterstützt. –

+0

Dieser Link zu iPhone OS Zubehör scheint schlecht geworden zu sein. – ThomasW