2010-09-27 7 views
51

Myślę o aplikacji na Androida (ewentualnie z towarzyszącym jej urządzeniem fizycznym) i próbuję ustalić, czy jest to możliwe.Aplikacje na Androida, komunikując się z urządzeniem podłączonym do portu USB

1) Załóżmy, że podłączam Androida do komputera. Czy aplikacja zainstalowana na komputerze może komunikować się z aplikacją działającą w telefonie komórkowym? Po prostu potrzebuję bardzo uproszczonej wymiany danych, może to być nawet jednokierunkowe (po prostu dane przesyłane z telefonu komórkowego do aplikacji do słuchania na komputerze, gdy tylko chce tego telefon komórkowy, nie potrzebuję żadnych danych przesyłanych z komputera do telefonu).

Po podłączeniu telefon daje mi 4 opcje (ładowanie, napęd dyskowy, synchronizacja HTC, tethering), co sprawia, że ​​wydaje mi się, że nie jest to możliwe, ale mimo to warto je wykonać.

2) Czy aplikacja na komputerze może komunikować się z aplikacją przez telefon w jakikolwiek inny sposób? (Wi-fi, bluetooth itp.). Zgaduję, że nie w wi-fi, ponieważ żadna ze stron nie ma adresu IP drugiej strony (i chcę, żeby to było po prostu praca, bez konieczności ręcznego wprowadzania adresów IP przez cały czas).

3) Jeśli wykonam urządzenie podłączone do małego portu USB w dolnej części telefonu (powiedzmy, że jest to magiczne urządzenie, które może zrobić wszystko, nie dbam o te szczegóły tak długo, jak długo jest to wykonalne). Czy mogę poprosić aplikację na Androida o to urządzenie?

4) Wszelkie inne pomysły, aby telefon mógł rozmawiać z "urządzeniem", które wykonuję, lub z aplikacją na komputerze, są mile widziane. Możliwość "przez Internet" może być opcją (chociaż moim zdaniem, powinienem mieć centralny serwer, który posiadam jako środkowy człowiek). Ale wolałbym, gdyby komunikacja była bezpośrednia między tymi dwoma urządzeniami.

+0

Przepraszamy za bardzo późną odpowiedź, ale jestem przy założeniu, że problem jest nadal nierozwiązany. Jeśli nie, zignoruj. Użyłem ADB do komunikacji: odsyłam [to] (http://stackoverflow.com/a/21749521/1833437) dla dodatkowych szczegółów. –

Odpowiedz

4

Edit: Uwaga ta odpowiedź poprzedza dostępności Androida hosta USB i akcesoriów API i wsparciu znaleźć w wielu urządzeniach uwolnionych po napisaniu .

Jeśli włączysz debugowanie USB w telefonie i uzyskasz coś, co pochodzi z narzędzia SDK (open source) adb na komputerze, mogą się komunikować. Komputer będzie musiał inicjować komunikację, ale w sesjach może być w większości dwukierunkowy, a nawet najczęściej z urządzenia na komputer. Zobacz developer.android.com o powłoce adb i przekierowaniu portów. Korzeń nie jest wymagany.

Ludzie używają bluetooth do komunikowania się z kontrolerami wbudowanymi arduino.

Z rootem sprawiłem, że mój telefon działa jak host usb, ale to był ból, ponieważ musiałem użyć Wi-Fi, aby uzyskać powłokę debugowania, ponieważ usb był zajęty.

Niektóre telefony mają port szeregowy niskiego napięcia na złączu Extusb lub liniach audio, ale do korzystania z tego niezbędny jest root i przesuwnik poziomu.

Kolejny pomysł, o którym myślałem, robiąc modem oprogramowania w zestawie słuchawkowym, najwyraźniej został zrobiony dla Androida i iPhone'a przez kogoś w Japonii. To nie powinno wymagać rootowania.

+0

Dziękuję za odpowiedź. Moim pomysłem jest udostępnienie go zwykłym ludziom. Aplikacja, która zostanie zainstalowana na rynku Android (przynajmniej strona Android aplikacji). To implikuje brak rootowania, brak debugowania USB (jak sądzę) i nic, czego moja mama nie byłaby w stanie zrobić. O czym wspomniasz o bluetooth .... Czy to oznacza, że ​​chcesz zakorzenić, czy może to moja mama? –

+1

Idea gniazda słuchawkowego jest ciekawa, na pewno –

+2

Bluetooth szeregowy (w porównaniu do słuchawek) może nie działać przed pewną wersją Androida, a sprzęt na zewnątrz jest drogi (np. 20-30 $ w częściach, do 150 $, aby uzyskać to, co jest w przeciwnym razie tablica kontrolna o wartości 30 USD z nim zintegrowana), ale nie powinna wymagać korzenia. Włączenie debugowania USB również nie wymaga korzenia, ale tak, nie jest dla wszystkich. Zasadniczo masz do wyboru koszt sprzętu lub złożoność użytkownika. –

18

Świat zmienił się od czasu zadawania tego pytania, a odpowiedź brzmi teraz: Android Open Accessory Development Kit. Nie rozwiąże to problemu dla istniejących urządzeń USB, ale umożliwia tworzenie nowych urządzeń, które mogą korzystać z połączenia USB urządzenia z systemem Android.

+0

Ale nie z komputera z systemem Windows, jak czytam ...? – Zonata

+1

@Zonata Nie korzystałem z tego, ale http://developer.android.com/tools/adk/adk2.html twierdzi, że obsługuje system Windows. –

+0

Dziękuję, ale myślę, że pójdę do szkoły ... Znalazłem samouczek na temat przesyłania gniazd, który może zainteresować innych: http://qtcstation.com/2011/03/connecting-android-to-the-pc-over- usb/ – Zonata