android - telefonica - ¿Cómo hacer una llamada telefónica programáticamente?
hacer una llamada telefonica por internet (7)
Aquí le mostraré cómo puede hacer una llamada telefónica desde su actividad. Para hacer una llamada, debes poner este código en tu aplicación.
try {
Intent my_callIntent = new Intent(Intent.ACTION_CALL);
my_callIntent.setData(Uri.parse("tel:"+phn_no));
//here the word ''tel'' is important for making a call...
startActivity(my_callIntent);
} catch (ActivityNotFoundException e) {
Toast.makeText(getApplicationContext(), "Error in your phone call"+e.getMessage(), Toast.LENGTH_LONG).show();
}
Estoy pasando a una actividad el número al que llamar por un paquete
y luego, en dicha actividad, tengo un botón para llamar a ese número, este es el código:
callButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(bundle.getString("mobilePhone")));
}
});
Algo está mal, porque cuando presiono el botón no pasa nada ...
¿Qué estoy haciendo mal?
PD: Estoy usando un proyecto compatible con Android 1.5 ... ¿tal vez la llamada telefónica es incompatible con 1.5?
Eche un vistazo allí: http://developer.android.com/guide/topics/intents/intents-filters.html
¿Tiene actualizar su archivo de manifiesto para otorgar derechos de llamada?
En la respuesta seleccionada, no hay verificación de permiso de malvavisco. No funcionará directamente en marshmallow 6.0 o dispositivo superior.
Sé que soy demasiado tarde, pero esta pregunta tiene una gran votación, así que pensé que sería útil para otros en el futuro.
En los dispositivos de malvavisco necesitamos tener permiso de tiempo de ejecución para llamar ...
Aquí hay un ejemplo para hacer una llamada en malvavisco o más.
Intenté esto en mi teléfono y funciona perfectamente.
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:900..." ));
startActivity(intent);
Agregue este permiso en el archivo de manifiesto.
<uses-permission android:name="android.permission.CALL_PHONE" />
Olvidaste llamar a startActivity. Debe tener un aspecto como este:
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + bundle.getString("mobilePhone")));
context.startActivity(intent);
Un intento en sí mismo es simplemente un objeto que describe algo. No hace nada.
No olvides agregar el permiso relevante a tu manifiesto:
<uses-permission android:name="android.permission.CALL_PHONE" />
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+198+","+1+","+1));
startActivity(callIntent);
para llamadas ordenadas múltiples
Esto se usa para los sistemas de llamadas DTMF. Si la llamada se cae, debe pasar más "," entre los números.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button button = (Button) findViewById(R.id.btn_call);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String mobileNo = "123456789";
String uri = "tel:" + mobileNo.trim();
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse(uri));
startActivity(intent);
}
});*
}