2011-01-24 9 views
6

Wszystko,Tworzenie „pośrednik” kontroler przycisk zestawu słuchawkowego w Androidzie

Mam szukał odpowiedzi na to, ale nie dostaję nic dokładny ... To mój pierwszy raz pisząc aplikację na Androida, więc proszę być Delikatnie :)

Jestem dość zszokowany co do minimalnej obsługi zestawu słuchawkowego w systemie Android - w przeciwieństwie do np. iPhone, tylko natywnie wydaje się obsługiwać jeden przycisk, więc nie ma kontroli głośności na kompatybilność zestawu słuchawkowego. Dodatkowo, jeśli słucham muzyki i przychodzi połączenie, system operacyjny automatycznie wstrzymuje odtwarzanie muzyki, ale przycisk zestawu słuchawkowego nadal działa TYLKO jako przycisk multimedialny - nie mogę go użyć, aby odebrać/zakończyć połączenie. Jeśli odbieram połączenie za pośrednictwem ekranu i naciśnij przycisk na zestawie słuchawkowym, muzyka zacznie się ponownie, ale połączenie będzie kontynuowane ...

Chciałbym utworzyć aplikację pośrednią, która będzie mogła odebrać przycisk zestawu słuchawkowego. naciśnięto (przez Keyevent.KEYCODE_HEADSETHOOK), a następnie można określić, czy wykonać domyślną akcję ACTION_MEDIA_BUTTON (przełączanie odtwarzania/pauzy w wybranym odtwarzaczu multimedialnym), czy też, jeśli nadchodzi połączenie, wstrzymać odtwarzanie muzyki i odebrać telefon (a następnie po ponownym naciśnięciu zakończyć połączenie i ponownie uruchomić odtwarzacz multimedialny). Być może nawet sprawdź ACTION_MULTIPLE na przycisku zestawu słuchawkowego, aby przypisać różne opcje (ACTION_MEDIA_NEXT, ACTION_MEDIA_PREVIOUS itd.). Być może też będziesz w stanie określić, czy naciśnięto różne przyciski na zestawie słuchawkowym (jeśli zestaw słuchawkowy jest np. Fantazyjnym zestawem słuchawkowym iPhone'a) i "przetłumaczyć" te naciśnięcia przycisku na odpowiednią ACTION_MEDIA_ *). Może to nie być możliwe, jeśli system operacyjny nie będzie w stanie odróżnić różnych przycisków.

Oczywiście taka aplikacja musiałaby otrzymać intencję z wystarczająco wysokim priorytetem, aby mogła przerwać transmisję, zanim bieżący odtwarzacz multimedialny ją odbierze.

Pobiegłam od tworzenia różnych klas BroadcastReceiver i filtrów intent itp., Ale część problemu polega na tym, że emulator Androida, który jest dostarczany z Eclipse, nie ma możliwości symulowania podłączania użytkownika w zestawie słuchawkowym i/lub następnie kliknięcie przycisku zestawu słuchawkowego. Dlatego za każdym razem, gdy dostaję coś, co wygląda obiecująco, muszę umieścić to na moim rzeczywistym telefonie i wypróbować - czasochłonne i kłopotliwe.

3 pytań to:

  1. jestem brakuje somethign oczywista - jest to prawdziwy problem, a jeśli tak, to jest to już został rozwiązany?

  2. Jeśli to jest problem, czy można napisać taką aplikację pośrednika?

  3. Czy są jakieś inne emulatory Androida, które mogą sprawdzać czynności związane z zestawem słuchawkowym?

Dzięki

Rory

+0

Nie wiem nic na temat zestawów słuchawkowych w szczególności wiedzieć, ale powinien być naprawdę straightforwards wdrożyć na swoim telefon. Wystarczy podłączyć go za pomocą kabla USB, a po uruchomieniu aplikacji Android od zaćmienia zostanie wdrożony w telefonie. Nie trudniejsze niż uruchomienie emulatora. –

+0

Mayra, masz rację, że nie wygląda na to, że byłoby tak źle, ale ponieważ trzymam emulator otwarty, kopiowanie aplikacji trwa kilka sekund, podczas gdy kopiowanie jej na telefon trwa znacznie dłużej. Może dlatego, że mam tylko USB 1.0 (długa historia!). Poza tym nie lubię umieszczać aplikacji na moim telefonie, chyba że wiem, że działają świetnie (których moje rzeczy prawie na pewno nie będą!). – roryhewitt

+0

Właściwie, jeszcze jedno pytanie, które powinienem był zadać: czy jest możliwe, aby taka aplikacja działała na telefonie nierootowanym? – roryhewitt

Odpowiedz

1

Ive już napisany dokładnie tego rodzaju aplikacji. Nazywa jak temat ten THEAD: Headset Przycisk sterowania ;-)

http://www.androidpit.com/en/android/market/apps/app/com.kober.headset/Headset-Button-Controller

Cheers Christoph

+0

Christoph: Świetnie, więc nie muszę pisać własnego kontrolera do zestawu słuchawkowego :) Czy to pozwala na odbiór połączeń przychodzących za pomocą przycisku zestawu słuchawkowego? – roryhewitt

+0

OK, przeczytaj tylko, gdzie jest napisane, że najnowsza wersja rzeczywiście ma zaimplementowaną logikę odpowiedzi/zawieszenia. Dam ci znać, czy działa na moim Droid X. – roryhewitt

+0

Tak, działa świetnie. @Martin, jeśli szukasz małej fajnej aplikacji, Christoph jest całkiem fajny. – roryhewitt

Powiązane problemy