2013-08-07 11 views
9
Wählen

Ich bin ein Anruf App mit Anrufs einer Nummer machen und MFV-Ton danach durchausblenden MFV-Ton während

String number = "tel:+1234567,890#"; 
Intent c1 = new Intent(android.content.Intent.ACTION_CALL, Uri.parse(number)); 

Aktuell können sie wählen 1234567, warten Sie ca. 3 Sekunden senden, dann 890. Wahl Funktionelles in Ordnung aber es sendet 890 mit Ton die Art von nicht sehr anpassungsfähig, Gibt es eine Möglichkeit, 890 ohne Tonantwort zurück zu senden?

Antwort

1

Entwickler können dies nicht über öffentliche APIs tun. Leider beherrscht Android DTMF-Steuerung nicht sehr gut. Zum Beispiel gibt es einen two year old feature request, um einem Benutzer zu ermöglichen, DTMF-Steuerelemente zu einem beliebigen Zeitpunkt während eines Anrufs zu senden; es wurde aufgegeben.

Wie Sie wissen, mit ACTION_CALL oder ACTION_DIAL und <number>|,;|<tones> tun werden DTMF-Töne senden direkt nach einem Anruf verbunden ist, aber das ist, wo Benutzer die Kontrolle über die Ausgabe stoppt.

Alle zusätzlichen Steuerelemente, wie z. B. das Senden zusätzlicher Töne oder das Stummschalten der Tonantwort auf das Mobilteil, werden von internen APIs behandelt, namentlich com.android.internal.telephony. Bemerkenswert ist die stopDtmf() Methode, die möglicherweise tun würde, was Sie suchen, außer dass es intern ist und möglicherweise kein konsistentes Verhalten hat.

Here's what the 2.x source looked like for the method. Wie bereits erwähnt, gibt es keine Garantie dafür, dass dies funktioniert und es wird dringend davon abgeraten, interne APIs zu verwenden.

+0

Ich habe gesehen, dass die Anwendungen die DTMF-Töne verbergen. – Deepak

+0

Beispiel? Ich habe keinen gesehen, der keine Wurzel benötigt. –

+0

Das Problem ist viel älter als zwei Jahre; es nähert sich seinem fünften Geburtstag, und [diese Patches] (https://groups.google.com/d/msg/android-contrib/4QqHglOrBO8/h2DZ5IKXVVsJ) wurden vor 18 Monaten eingereicht und aufgegeben. Ich habe wenig Hoffnung, dass sich etwas kurzfristig ändern wird, und bedenke, dass es auch mit älteren Versionen von Android nicht kompatibel sein wird. –