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?

Author: Community, 2011-04-22

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.

 17
Author: Reto Meier,
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
 3
Author: Macarse,
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.

 3
Author: Jasen,
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

 0
Author: Hazem Farahat,
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.

 0
Author: Joe,
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.

 0
Author: Steve Barnes,
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