Enviar pausa al marcador
En una vena similar a Enviando Pausa y entrada DTMF en android, estoy tratando de enviar el carácter de pausa "," al marcador. Esto funciona en los teléfonos HTC Sense e incluso en el Xoom, pero no en" stock experience " teléfonos como el Nexus One o T-Mobile G2 (y sospecho que el Motorola Droid).
Estos teléfonos parecen tener un marcador que intenta formatear bastante el número (es decir, agregar guiones) y detenerse al golpear un carácter de coma. Curiosamente, no se atraganta con una " p" carácter, aunque se despojará de "p" s y seguir añadiendo números.
Esto es lo que ve el ActivityManager:
I/ActivityManager( 92): Starting activity: Intent { act=android.intent.action.DIAL dat=tel:8883333,444 cmp=com.android.contacts/.DialtactsActivity }
También he probado la forma codificada, "tel:8883333% 2C444" sin diferencia en el comportamiento en estos teléfonos. He intentado "p", como se mencionó, pero estos caracteres se eliminan dando como resultado que los dialers tengan 888-333-3444 incorrectamente poblados, y no estoy seguro de que" p " sea correcta de todos modos.
Por lo tanto, la pregunta: ¿Hay una manera de especificar una pausa que funciona a través de la mayoría o todos los marcadores android?
6 answers
Respuesta corta: No parece que sea posible usar el marcador nativo.
Respuesta larga:
El marcador nativo en Android usa el siguiente código para extraer el número que pasas al marcador usando una Intent
if ("tel".equals(uri.getScheme())) {
// Put the requested number into the input area
String data = uri.getSchemeSpecificPart();
setFormattedDigits(data, null);
return true;
}
Dentro del método setFormattedDigits
el número se transforma así:
String dialString = PhoneNumberUtils.extractNetworkPortion(data);
Mirando los documentos de extractNetworkPortion
te darás cuenta de que, " Extrae la porción de la dirección de red [donde la] Porción de la dirección de red es todo hasta el dígito de control DTMF separadores (pausa o espera) .
Por lo tanto, el código está separando intencionalmente el carácter de pausa y todo lo que viene después de él. La única alternativa que se me ocurre es reemplazar el marcador o usar la acción ACTION_CALL
en lugar de ACTION_DIAL
. Eso evitará el marcador, por lo que debe usarse con precaución.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-01 01:06:33
Del código fuente latino de android ime :
<!-- Pause is a comma. Check PhoneNumberUtils.java to see if this has changed. -->
<Key
android:codes="44"
android:keyLabel="Pause" />
No estoy 100% seguro de si es público, pero es posible que pueda usar:
PhoneNumberUtils.PAUSE
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-24 23:31:03
La pausa de marcación ha sido coma durante 30 años
Si el teléfono Android es compatible con ITUT V. 250 ATS8=2 debe establecer el retraso causado por coma a 2 segundos. (es posible que de alguna manera se haya establecido en 0s)
ITUT es una gran organización de estándares, puede descargar sus estándares de forma gratuita.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-30 11:45:50
', 'es el estándar, pero HTC utiliza' p 'en rogers magic,, has intentado con 'p'? HTC Magic está usando p
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-19 13:22:17
Esto es horrible y peligroso. Las personas de negocios que reciben correos electrónicos de llamadas de conferencia en su teléfono tienen que cambiar constantemente para obtener el número.
Simplemente haz que funcione como debería:
tel://+1-877-555-1212,,,2345678#
Debe marcar el número 877
pausa, luego marque el código de la conferencia de participantes y 'enter' (#) cuando se seleccione en cualquier lugar del teléfono.
Es así de simple. El hecho de que esto no funciona en Android es un argumento de venta para iPhone.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-03 16:28:56
Para referencia futura RFC-2806 especifica el almacenamiento de números de teléfono en el formato:
tel:number;postd=post-dial
Donde number
puede comenzar con +
para marcar intencionalmente y puede incluir -
o .
como separador visual y post-dial
puede incluir números, letras mayúsculas A-D, #
, *
, p
para pausa y w
para espera.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-22 06:40:26