Funzione di chiamata telefonica in Android utilizzando Java
Implementazione della funzione di chiamata telefonica in-app utilizzando Java in Android.
Il servizio di chiamata è una delle funzionalità principali di Android ed è molto comunemente utilizzato nelle applicazioni Android. Questa funzione consente all'utente di effettuare chiamate dall'interno dell'applicazione Android. Ci possono essere due approcci per chiamare qualcuno tramite l'applicazione Android. Uno in cui il numero da comporre è predefinito e non richiede l'input dell'utente . Ad esempio, sollevare una domanda o supportare l'assistenza clienti. Il secondo approccio consiste nel chiamare qualsiasi numero valido di tua scelta. In questo approccio l'utente dovrebbe inserire un numero che deve essere composto. In Java entrambi possono essere implementati dal pacchetto integrato stesso.
Dobbiamo concedere le autorizzazioni per consentire all'applicazione di utilizzare la funzione di chiamata Android integrata. Quindi per prima cosa chiederemo all'utente l'autorizzazione CALL_PHONE aggiungendo il seguente codice di autorizzazione nel file AndroidManifest.xml .
<uses-permission android:name="android.permission.CALL_PHONE"/>
In questo abbiamo aggiunto due pulsanti e assegnato un id per entrambi i pulsanti. Uno per chiamare il numero predefinito e l'altro per chiamare tramite l'input dell'utente.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="24dp"
android:textStyle="bold"
android:text="@string/call_feature" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="16dp"
android:layout_marginTop="20dp"
android:text="@string/feature" />
<Button
android:id="@+id/btnCall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10dp"
android:text="@string/contact_us"/>
<EditText
android:id="@+id/edtPhoneNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="16dp"
android:layout_marginTop="20dp"
android:hint="@string/dynamicCall"
android:text="" />
<Button
android:id="@+id/btnCallDynamic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10dp"
android:text="@string/call"/>
</LinearLayout>
Useremo un Android Intent to call. Un intent Android include il codice necessario per eseguire un'azione e descrive i dati in un oggetto Intent richiesto dal sistema. Un intento ti consente di avviare un'attività in un'altra app descrivendo una semplice azione che desideri eseguire in un oggetto Intento.
Qui, stiamo creando un Intent e descrivendo l'azione ACTION_CALL nell'oggetto Intent.
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel: 9999999999"));
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.CALL_PHONE}, REQUEST_PHONE_CALL);
startActivity(callIntent);
package com.example.androidphonecalls;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import android.Manifest;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
// Initialized edittext and buttons
Button call, dynamicCall;
EditText phoneNumber;
private static final int REQUEST_PHONE_CALL = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Getting instance of button and edit text
call = findViewById(R.id.btnCall);
phoneNumber = findViewById(R.id.edtPhoneNumber);
dynamicCall = findViewById(R.id.btnCallDynamic);
// Here we are adding onClick listener on the button to call predefined number
call.setOnClickListener(view -> {
Intent callIntent = new Intent(Intent.ACTION_CALL);
// Here we have defined the number to be called
callIntent.setData(Uri.parse("tel: 9999999999"));
// Checking for the permission
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.CALL_PHONE}, REQUEST_PHONE_CALL);
// Starting the call Intent
startActivity(callIntent);
});
// Here we are adding onClick listener on the button to call via user input
dynamicCall.setOnClickListener(view -> {
// Take value from user input
String retrieveNumber = phoneNumber.getText().toString();
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:" + retrieveNumber));
// Checking for permissions
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.CALL_PHONE}, REQUEST_PHONE_CALL);
// Starting the call Intent
startActivity(callIntent);
});
}
}
Grazie !

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































