2009-06-30 4 views
27

Próbuję dowiedzieć się, czy iPhone może połączyć się z innym urządzeniem bez telefonu iPhone przez sieć bezprzewodową lub Bluetooth i widziałem sprzeczne informacje. Wiele z tego, co znalazłem, pojawiło się przed wersją 3.0 SDK, kiedy na pewno nie było to możliwe. Patrząc na stosy   pytań przepełnienia, takich jak Can the iPhone 3.0 SDK provide full access to Bluetooth devices (headsets)? wspomnieć, że nie można połączyć się z dowolnym urządzeniem, chyba że jest ono częścią urządzenia "Works for iPhone". Czy potrzebuję sprzętu, który jest częścią tego programu?W jaki sposób iPhone może uzyskać dostęp do innego urządzenia poza iPhonem przez sieć bezprzewodową lub Bluetooth?

Przeglądając dokumentację Apple, Peer-to-Peer Connectivity, wspomniano o połączeniu dwóch iPhone'ów, a nie iPhone'a z innym urządzeniem Bluetooth. Następnie są artykuły takie jak iPhone SDK focus: Bluetooth enhancements który zawiera ten cytat

... iz nowo ogłoszonego „standardowego wsparcia” powinno umożliwić transfer plików między iPhone i komputerem, jak również pomiędzy pobliżu iPhone'ów

Innym Stos   przelewowy pytanie, GameKit in iPhone SDK 3.0 wspomina Bonjour i the Apple documentation for Bonjour mówi o podłączeniu do urządzeń Bonjour, ale można podłączyć iPhone do dowolnego urządzenia Bonjour? Czy musi mieć połączenie Wi-Fi, czy może korzystać z Bluetooth?

Nawet jeśli mógłbym połączyć się z innym urządzeniem za pomocą Bluetooth, nie będzie on dostępny na iPhones i iTouchy pierwszej generacji, jak sądzę. Czy to jest poprawne? Myślę o aplikacji na iPhone'a, która musiałaby komunikować się z innymi urządzeniami poza iPhone'em w okolicy, prawdopodobnie za pomocą Bluetootha, ale prawdopodobnie z bezpośredniego połączenia bezprzewodowego. Jakie są możliwości i ograniczenia tego podejścia? Czy nie można podłączyć iPhone'a do dowolnego urządzenia Bluetooth? Czy drugie urządzenie musi być podłączone do bezprzewodowej sieci Bonjour? Próbuję dowiedzieć się, czy jest to możliwe, czy to działa, czy nie jest warte wysiłku.

Odpowiedz

12

Jedynym sposobem, aby komunikować się z innymi urządzeniami Bluetooth poprzez External Accessory ram w iPhone OS 3.0 jest, jeśli są one w programie Made for iPod accessory. Mimo że komunikują się za pośrednictwem standardowych połączeń Bluetooth, akcesoria wymagają specjalnego sprzętu w celu przetworzenia strumienia danych pochodzących z iPhone/iPod touch. Niestety oznacza to, że twój pomysł komunikacji z typowymi urządzeniami Bluetooth nie działa na iPhone OS 3.0.

Jeśli urządzenia, z którymi chcesz porozmawiać, są wykrywalne przez Bonjour przez Wi-Fi, nie muszą być częścią programu Made for iPod. Jednak to nie brzmi jak twoja sprawa.

Twórcy stron trzecich w niedalekiej przyszłości mogą produkować klucze sprzętowe łączące się przez 30-pinowy port dokowania i zapewniać dostęp do istniejących urządzeń Bluetooth. Jeśli ci programiści otworzyli swój protokół komunikacyjny, może to ułatwić osiągnięcie celu komunikacji z tymi urządzeniami.

+0

Dzięki za informację - im więcej czytam, tym bardziej uważałem, że Bluetooth nie będzie wykonalną opcją, chyba że urządzenia są w programie Made for iPod. Jeśli chodzi o Bonjour, czy iPhone/iTouch muszą znajdować się w sieci bezprzewodowej, aby wykryć urządzenie Bonjour? Czy są jakieś ograniczenia zasięgu dla Bonjour, czy jest to tylko zakres, na jaki może transmitować inne urządzenie? –

+0

Bonjour to po prostu protokół wykrywania, więc jego zasięg jest dowolny, niezależnie od zasięgu sieci. Jest przeznaczony do użytku w sieci lokalnej, co oznacza, że ​​iPhone musi znajdować się w sieci Wi-Fi. Same urządzenia mogą jednak być podłączone przewodowo lub podłączone do sieci innymi sposobami. –

+1

Nie, iPhone nie musi być w sieci Wi-Fi: użyje * dowolnego * urządzenia sieciowego dostępnego w systemie - w szczególności: Bluetooth. W przypadku iOS6, Apple domyślnie wyłącza wyszukiwanie BT dla Bonjour (wytłumaczenie Apple (wymówka) za wykonanie tej zmiany oraz oficjalną instrukcję obejścia https://developer.apple.com/library/ios/qa/qa1753/index. html # // apple_ref/doc/uid/DTS40011315) – Adam

1

Można użyć NSStream do otwierania gniazd IPv4/IPv6 na telefonie iPhone. Urządzenia, z którymi się łączysz, nie muszą być iPhone'ami ani koniecznie korzystać z Wi-Fi. Ze względu na to, jak układane są protokoły komunikacji sieciowej, po prostu nie musisz przejmować się urządzeniem, z którym łączy się twój iPhone.

Z drugiej strony, Bonjour używa wewnętrznie NSStream. Jest to po prostu sprytne opakowanie, które pozwala na automatyczne wykrywanie. Potrzebujesz protokołu Bonjour zainstalowanego na wszystkich urządzeniach, które chcesz wziąć udział w procesie automatycznego wykrywania. Istnieje nawet implementacja dla systemu Windows.

+0

Przepraszamy za wiele pytań - podstawową kwestią jest możliwość podłączenia iPhone'a do dowolnego urządzenia. Na przykład, jeśli aplikacja służy do odczytu liczników elektrycznych, chciałbym móc wejść do pokoju i połączyć się z dowolnym licznikiem, nie wiedząc nic o konkretnym liczniku (identyfikator Bluetooth, adres IP itp.). Wydaje się, że byłoby to możliwe dzięki Bonjour (jeśli liczniki obsługują protokół), ale nie Bluetooth. Czy to jest poprawne? Aby połączyć się z innym urządzeniem Bonjour, czy iPhone musi znajdować się w sieci bezprzewodowej lub być podłączony przez Bluetooth? Nie wydaje się tak. –

+0

Jeśli dobrze rozumiem, pytasz, w jaki sposób możesz uzyskać listę wszystkich glukometrów w zasięgu twojego iPhone'a? Wiem, że urządzenia Bluetoth mogą się wzajemnie odkrywać, ale nie sądzę, żeby używały Bonjour (Zeroconf), żeby to zrobić. Jestem pewien, że sam protokół jest specyficzny dla bluetooth. Brzmi jak całkiem fajny projekt! –

+0

Możesz chcieć zainwestować czas w ramy akcesoriów zewnętrznych, wydany przez 3.0 –

0

W ramach pakietu iPhone OS 3.0 SDK firma Apple ogłosiła możliwość sterowania akcesoriami sprzętowymi za pośrednictwem interfejsu Bluetooth lub złącza stacji dokującej. Złącze stacji dokującej obsługuje standardowe protokoły (tj. Odtwarzanie, pauzę itp.), A także wszelkie niestandardowe protokoły, które programista chce zaimplementować.

Jeśli chodzi o łączność przez Bluetooth, można rozmawiać z innymi urządzeniami iPhone lub innymi urządzeniami. Na przykład, możesz użyć stereofonicznego Bluetooth, aby podłączyć kompatybilne stereofoniczne słuchawki Bluetooth, zestawy samochodowe lub inne akcesoria.

Jeśli chodzi o urządzenia, które obsługują komunikację Bluetooth, wszystko poza iPodem pierwszej generacji powinno być w porządku.

Zobacz także Apple's page on iPhone OS accessories.

+1

To są wszystkie urządzenia "Made for iPhone". Czy to jedyny sposób na połączenie z urządzeniem Bluetooth? Ponadto, zgodnie z [dokumentacją Apple] (http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/GameKit_Guide/GameKitConcepts/GameKitConcepts.html#//apple_ref/doc/uid/TP40008304-CH100- SW1), połączenie Bluetooth nie jest obsługiwane na oryginalnym iPhonie lub iPodzie Touch pierwszej generacji. Nie jest również obsługiwany w Symulatorze. –

+0

Ten link do akcesoriów iPhone OS wygląda na zły. – ThomasW

Powiązane problemy