¿Cómo consigo que el marcador se abra con el número de teléfono mostrado?


No necesito llamar al número de teléfono, solo necesito que el marcador se abra con el número de teléfono ya mostrado. ¿Qué Intent debo usar para lograr esto?

Author: edwoollard, 2012-07-28

4 answers

Dos maneras de lograrlo.

1) Necesidad de iniciar el marcador a través de código, sin interacción del usuario.

Necesitas Action_Dial,

Use el código debajo se abrirá el marcador con el número especificado

Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:0123456789"));
startActivity(intent); 

Se requiere el prefijo' tel: ', de otro modo se lanzará la siguiente excepción: java.lang.IllegalStateException: No se pudo ejecutar el método de la actividad.

Action_Dial no requiere ningún permiso.

Si usted si desea iniciar la llamada directamente sin la interacción del usuario , puede usar action Intent.ACTION_CALL. En este caso, debe agregar el siguiente permiso en su AndroidManifest.xml:

<uses-permission android:name="android.permission.CALL_PHONE" />

2) Necesita que el usuario haga clic en la cadena Phone_Number e inicie la llamada.

android:autoLink="phone" 

Necesita usar TextView con la propiedad de abajo.

Android: AutoLink = " teléfono" android: linksClickable= "true" una propiedad TextView

No es necesario usar intent o obtener permiso a través de por aquí.

 431
Author: AAnkit,
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
2018-08-23 16:58:35

Bastante tarde en la respuesta, pero si tiene un TextView en el que está mostrando el número de teléfono, entonces no necesita lidiar con intents en absoluto, solo puede usar el atributo XML android:autoLink="phone" y el sistema operativo iniciará automáticamente una Intent ACTION_DIAL.

 45
Author: ashishduh,
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-11-06 15:45:31

Como @ashishduh mencionó anteriormente, usar android:autoLink="phone también es una buena solución. Pero esta opción viene con un inconveniente, no funciona con todas las longitudes de números de teléfono. Por ejemplo, un número de teléfono de 11 números no funcionará con esta opción. La solución es prefijar sus números de teléfono con el código de país.

Ejemplo:

08034448845 no funcionará

Pero +2348034448845 lo hará

 2
Author: ojonugwa ochalifu,
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
2017-06-04 07:58:54
<TextView
 android:id="@+id/phoneNumber"
 android:autoLink="phone"
 android:linksClickable="true"
 android:text="+91 22 2222 2222"
 />

Así es como puede abrir EditText label assigned number en el marcador directamente.

 1
Author: saurabh yadav,
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
2017-11-07 07:41:09