Android - Telefonate

Android fornisce applicazioni integrate per le telefonate, in alcune occasioni potrebbe essere necessario effettuare una telefonata tramite la nostra applicazione. Ciò potrebbe essere fatto facilmente utilizzando l'Intento implicito con azioni appropriate. Inoltre, possiamo utilizzare le classi PhoneStateListener e TelephonyManager, al fine di monitorare i cambiamenti in alcuni stati di telefonia sul dispositivo.

Questo capitolo elenca tutti i semplici passaggi per creare un'applicazione che può essere utilizzata per effettuare una telefonata. È possibile utilizzare Android Intent per effettuare chiamate telefoniche chiamando la funzionalità di chiamata telefonica incorporata di Android. La sezione seguente spiega le diverse parti del nostro oggetto Intent richiesto per effettuare una chiamata.

Oggetto dell'intento - Azione per effettuare una telefonata

Userai ACTION_CALLazione per attivare la funzionalità di chiamata telefonica incorporata disponibile nel dispositivo Android. La seguente è una semplice sintassi per creare un intento con l'azione ACTION_CALL

Intent phoneIntent = new Intent(Intent.ACTION_CALL);

Puoi usare ACTION_DIAL azione invece di ACTION_CALL, in tal caso avrai la possibilità di modificare il numero di telefono codificato prima di effettuare una chiamata invece di effettuare una chiamata diretta.

Oggetto Intento: dati / tipo per effettuare una telefonata

Per effettuare una telefonata a un dato numero 91-000-000-0000, è necessario specificare tel: come URI utilizzando il metodo setData () come segue:

phoneIntent.setData(Uri.parse("tel:91-000-000-0000"));

Il punto interessante è che, per effettuare una telefonata, non è necessario specificare alcun dato o tipo di dati extra.

Esempio

L'esempio seguente mostra in pratica come utilizzare Android Intent per effettuare una telefonata al numero di cellulare indicato.

Per sperimentare questo esempio, avrai bisogno di un dispositivo mobile effettivo dotato dell'ultimo sistema operativo Android, altrimenti dovrai lottare con l'emulatore che potrebbe non funzionare.
Passo Descrizione
1 Utilizzerai l'IDE di Android Studio per creare un'applicazione Android e chiamarla My Application in un pacchetto com.example.saira_000.myapplication .
2 Modificare il file src / MainActivity.java e aggiungere il codice richiesto per eseguire una chiamata.
3 Modifica il file XML di layout res / layout / activity_main.xml aggiungi qualsiasi componente della GUI se necessario. Sto aggiungendo un semplice pulsante per chiamare il numero 91-000-000-0000
4 Non è necessario definire costanti di stringa predefinite, Android Studio si occupa delle costanti predefinite.
5 Modifica AndroidManifest.xml come mostrato di seguito
6 Esegui l'applicazione per avviare l'emulatore Android e verifica il risultato delle modifiche apportate nell'applicazione.

Di seguito è riportato il contenuto del file di attività principale modificato src/MainActivity.java.

package com.example.saira_000.myapplication;

import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
   private Button button;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      button = (Button) findViewById(R.id.buttonCall);
		
      button.setOnClickListener(new View.OnClickListener() {
         public void onClick(View arg0) {
            Intent callIntent = new Intent(Intent.ACTION_CALL);
            callIntent.setData(Uri.parse("tel:0377778888"));
				
            if (ActivityCompat.checkSelfPermission(MainActivity.this,
               Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
                  return;
               }
               startActivity(callIntent);
         }
      });

   }
}

Di seguito sarà il contenuto di res/layout/activity_main.xml file -

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >

   <Button
      android:id="@+id/buttonCall"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="call 0377778888" />

</LinearLayout>

Di seguito sarà il contenuto di res/values/strings.xml per definire due nuove costanti -

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="app_name">My Application</string>
</resources>

Di seguito è riportato il contenuto predefinito di AndroidManifest.xml -

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.saira_000.myapplication" >
   
   <uses-permission android:name="android.permission.CALL_PHONE" />
   
   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.saira_000.myapplication.MainActivity"
         android:label="@string/app_name" >
      
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      
      </activity>
      
   </application>
</manifest>

Proviamo a eseguire il tuo My Applicationapplicazione. Presumo che tu abbia collegato il tuo attuale dispositivo mobile Android al tuo computer. Per eseguire l'app da Android Studio, apri uno dei file di attività del tuo progetto e fai clic sull'icona Esegui dalla barra degli strumenti Seleziona il tuo dispositivo mobile come opzione e poi controlla il tuo dispositivo mobile che mostrerà la seguente schermata:

Ora usa Call pulsante per effettuare la telefonata come mostrato di seguito -