Deweloperzy nie mogą tego zrobić za pomocą publicznych interfejsów API. Niestety, Android nie radzi sobie z kontrolą DTMF. Na przykład istnieje two year old feature request, aby umożliwić użytkownikowi wysyłanie sterowania DTMF w dowolnym czasie podczas połączenia; zostało porzucone.
Jak wiecie, używając ACTION_CALL
lub ACTION_DIAL
i robi <number>|,;|<tones>
będzie wysyłać sygnały DTMF bezpośrednio po nawiązaniu połączenia, ale to gdzie kontrola użytkownika nad numerze zatrzyma.
Dowolne dodatkowe elementy sterujące, takie jak wysyłanie dodatkowych dźwięków lub wyciszanie odpowiedzi tonowej na słuchawkę, są obsługiwane przez wewnętrzne interfejsy API, z widocznymi numerami com.android.internal.telephony
. Na uwagę zasługuje metoda stopDtmf()
, która może zrobić to, czego szukasz, z wyjątkiem tego, że jest wewnętrzna i może nie mieć stałego zachowania.
Here's what the 2.x source looked like for the method. Jak stwierdzono, nie ma gwarancji, że to zadziała, a korzystanie z wewnętrznych interfejsów API jest zdecydowanie odradzane.
Widziałem aplikacje ukrywające sygnały DTMF. – Deepak
Przykład? Nie widziałem takiego, który nie wymagałby korzenia. –
Problem jest znacznie starszy niż dwa lata; zbliża się piąta rocznica, a [te poprawki] (https://groups.google.com/d/msg/android-contrib/4QqHgLOrBO8/h2DZ5IKXVVsJ) zostały złożone i porzucone 18 miesięcy temu. Mam małe nadzieje, że wszystko zmieni się na krótką metę i pamiętam, że nawet jeśli tak, to nie będzie kompatybilny z poprzednimi wersjami Androida. –