Respuestas:
Dos formas de lograrlo.
1) Necesita iniciar el marcador a través del código, sin interacción del usuario.
Es necesario Action_Dial
,
use el siguiente código, abrirá 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 lo contrario se generará 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 desea iniciar la llamada directamente sin la interacción del usuario , puede usar la acción 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 a continuación.
android: autoLink = "phone" android: linksClickable = "true" una propiedad textView
No necesita usar la intención ni obtener permiso de esta manera.
Bastante tarde en la respuesta, pero si tiene un TextView
mensaje en el que muestra el número de teléfono, entonces no necesita tratar con android:autoLink="phone"
ningún ACTION_DIAL
intento , simplemente puede usar el atributo XML y el sistema operativo iniciará automáticamente un intento.
Como @ashishduh mencionó anteriormente, usando 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 del país.
Ejemplo:
08034448845
no funcionará
pero lo +2348034448845
hará
<TextView
android:id="@+id/phoneNumber"
android:autoLink="phone"
android:linksClickable="true"
android:text="+91 22 2222 2222"
/>
Así es como puede abrir el número asignado a la etiqueta EditText directamente en el marcador.
Agregar permiso en manifiesto:
<uses-permission android:name="android.permission.CALL_PHONE" />
Haga un botón o cualquier ejemplo de widget: btnCall
btnCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent callIntent = new Intent(Intent.ACTION_DIAL);
callIntent.setData(Uri.parse("tel: +98990*******");
startActivity(callIntent);
}
});