Jak uchwycić kluczowe wydarzenia z zestawu słuchawkowego Bluetooth z Androidem
Moją aplikacją można sterować za pomocą zwykłego zestawu słuchawkowego. To po prostu zastępuje „onKeyDown”. Ale kluczowe zdarzenia z zestawu słuchawkowego Bluetooth nie są przechwytywane - dlaczego? Lub jak uchwycić kluczowe zdarzenia bluetooth?
„kot z logami” pokazuje następujące elementy, jeśli naciśniesz przycisk na zestawie słuchawkowym:
Bluetooth AT recv(3043): AT+VGS=15
AudioPolicyManagerBase(13654): FM radio recording off
AudioService(2261): sendVolumeUpdate, isKeyguardLocked...Not to update Volume Panel.
VolumePanel(2261): change volume by MSG_VOLUME_CHANGED
VolumePanel(2261): onVolumeChanged(streamType: 6, flags: 0)
VolumePanel(2261): Call setChangeSeekbarColor(false)
Próbowałem również obsługiwać działania przycisków multimediów, ale to nie działa. moim pomysłem jest bezpłatne konfigurowalne mapowanie klawiszy: użytkownik wybiera „klucz nastawczy”, który moja aplikacja słyszy na wszystkich klawiszach (sprzęt, przyciski multimedialne, zestaw słuchawkowy Bluetooth), a następnie użytkownik naciska klawisz, a kod zdarzenia / klucza jest przechowywany w konfiguracji.
Summerizing not working Odpowiedzi: Przyciski głośności muszą zostać przechwycone przez „VOLUME_CHANGED_ACTION”. Problem polega na tym, że zamiary są nadawane do innych aplikacji i abortBroadcast () nie działa (działa tylko dla „uporządkowanych” transmisji). Innym problemem jest to, że klucze na zestawie słuchawkowym i na telefonie uruchamiają onReceive () dwukrotnie (dlaczego?) Zestaw słuchawkowy Bluetooth uruchamia go raz. Kolejnym problemem jest trzeci klucz na zestawie słuchawkowym Bluetooth. Uruchamia polecenia głosowe (s-voice zaczyna się na s3), próbowałem uchwycić wiele różnych intencji dotyczących tego, ale nie mogę „odebrać” tego przycisku i nie wiem dlaczego. Na koniec chcę przechwycić wszystkie rodzaje przycisków i nie chcę, aby były obsługiwane przez inne aplikacje (np. Używanie onKeyDown i zwracanie true).