En este artículo, creará una aplicación básica de Android que se puede usar para llamar a algún número a través de su aplicación de Android.
Puede hacerlo con la ayuda de Intent with action como ACTION_CALL . Básicamente, Intent es un objeto de mensaje simple que se usa para comunicarse entre componentes de Android, como actividades, proveedores de contenido, receptores de transmisión y servicios, aquí se usa para hacer llamadas telefónicas. Esta aplicación básicamente contiene una actividad con texto de edición para escribir el número de teléfono en el que desea realizar una llamada y un botón para llamar a ese número.
- Paso 1. Código de permiso en el archivo Android-Manifest.xml
Debe obtener el permiso del usuario para la llamada telefónica y para eso se agrega el permiso CALL_PHONE en el archivo de manifiesto. Aquí está el código del archivo de manifiesto:Android-manifiesto.xml
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
package
=
"com.geeksforgeeks.phonecall"
android:versionCode
=
"1"
android:versionName
=
"1.0"
>
<
uses-sdk
android:minSdkVersion
=
"8"
android:targetSdkVersion
=
"16"
/>
<!--permission for phone call-->
<
uses-permission
android:name
=
"android.permission.CALL_PHONE"
/>
<
application
android:icon
=
"@drawable/ic_launcher"
android:label
=
"@string/gfg"
android:theme
=
"@style/AppTheme"
>
<
activity
android:name
=
"com.geeksforgeeks.phonecall.MainActivity"
android:label
=
"@string/gfg"
>
<
intent-filter
>
<
action
android:name
=
"android.intent.action.MAIN"
/>
<
category
android:name
=
"android.intent.category.LAUNCHER"
/>
</
intent-filter
>
</
activity
>
</
application
>
</
manifest
>
- Paso 2. activity_main.xml
activity_main.xml contiene un diseño relativo que contiene texto de edición para escribir el número de teléfono en el que desea realizar una llamada telefónica y un botón para iniciar la intención o realizar una llamada:actividad_principal.xml
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<!--Relative Layout-->
<
RelativeLayout
android:layout_width
=
"match_parent"
android:layout_height
=
"match_parent"
tools:context
=
".MainActivity"
>
<!--Edit text for phone number-->
<
EditText
android:id
=
"@+id/editText"
android:layout_marginTop
=
"30dp"
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
android:layout_alignParentTop
=
"true"
android:layout_centerHorizontal
=
"true"
/>
<!--Button to make call-->
<
Button
android:id
=
"@+id/button"
android:layout_marginTop
=
"115dp"
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
android:text
=
"Make Call!!"
android:padding
=
"5dp"
android:layout_alignParentTop
=
"true"
android:layout_centerHorizontal
=
"true"
/>
</
RelativeLayout
>
- Paso 3. MainActivity.java
En la actividad principal, el objeto Intent se crea para redirigir la actividad al administrador de llamadas y el atributo de acción de la intención se establece como ACTION_CALL. utilizar para llamar a ese número de teléfono. setOnClickListener se adjunta al botón con el objeto de intención para hacer la intención con la acción como ACTION_CALL para hacer una llamada telefónica. Aquí está el código completo:MainActivity.java
package
com.geeksforgeeks.phonecall;
import
android.os.Bundle;
import
android.support.v7.app.AppCompatActivity;
import
android.content.Intent;
import
android.widget.EditText;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.net.Uri;
import
android.widget.Button;
public
class
MainActivity
extends
AppCompatActivity {
// define objects for edit text and button
EditText edittext;
Button button;
@Override
protected
void
onCreate(Bundle savedInstanceState)
{
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Getting instance of edittext and button
button = findViewById(R.id.button);
edittext = findViewById(R.id.editText);
// Attach set on click listener to the button
// for initiating intent
button.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View arg)
{
// getting phone number from edit text
// and changing it to String
String phone_number
= edittext.getText().toString();
// Getting instance of Intent
// with action as ACTION_CALL
Intent phone_intent
=
new
Intent(Intent.ACTION_CALL);
// Set data of Intent through Uri
// by parsing phone number
phone_intent
.setData(Uri.parse(
"tel:"
+ phone_number));
// start Intent
startActivity(phone_intent);
}
});
}
}
Producción:
Publicación traducida automáticamente
Artículo escrito por Rishabh007 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA