Android - Appels téléphoniques

Android fournit des applications intégrées pour les appels téléphoniques, dans certaines occasions, nous pouvons avoir besoin de passer un appel téléphonique via notre application. Cela pourrait facilement être fait en utilisant une intention implicite avec des actions appropriées. En outre, nous pouvons utiliser les classes PhoneStateListener et TelephonyManager, afin de surveiller les changements dans certains états de téléphonie sur l'appareil.

Ce chapitre répertorie toutes les étapes simples pour créer une application qui peut être utilisée pour passer un appel téléphonique. Vous pouvez utiliser Android Intent pour passer un appel téléphonique en appelant la fonctionnalité d'appel téléphonique intégrée d'Android. La section suivante explique les différentes parties de notre objet Intent requises pour passer un appel.

Objet d'intention - Action pour passer un appel téléphonique

Vous utiliserez ACTION_CALLaction pour déclencher la fonctionnalité d'appel téléphonique intégrée disponible dans l'appareil Android. Voici une syntaxe simple pour créer une intention avec l'action ACTION_CALL

Intent phoneIntent = new Intent(Intent.ACTION_CALL);

Vous pouvez utiliser ACTION_DIAL action au lieu de ACTION_CALL, dans ce cas, vous aurez la possibilité de modifier le numéro de téléphone codé en dur avant de passer un appel au lieu de faire un appel direct.

Objet d'intention - Données / Type pour passer un appel téléphonique

Pour passer un appel téléphonique à un numéro donné 91-000-000-0000, vous devez spécifier tel: comme URI en utilisant la méthode setData () comme suit -

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

Le point intéressant est que, pour passer un appel téléphonique, vous n'avez pas besoin de spécifier de données ou de types de données supplémentaires.

Exemple

L'exemple suivant vous montre de manière pratique comment utiliser Android Intent pour passer un appel téléphonique vers le numéro de mobile donné.

Pour expérimenter cet exemple, vous aurez besoin d'un appareil mobile équipé du dernier système d'exploitation Android, sinon vous devrez lutter avec un émulateur qui pourrait ne pas fonctionner.
Étape La description
1 Vous utiliserez l'IDE de studio Android pour créer une application Android et la nommerez My Application sous un package com.example.saira_000.myapplication .
2 Modifiez le fichier src / MainActivity.java et ajoutez le code requis pour effectuer un appel.
3 Modifiez le fichier XML de mise en page res / layout / activity_main.xml, ajoutez tout composant GUI si nécessaire. J'ajoute un simple bouton pour appeler le numéro 91-000-000-0000
4 Inutile de définir des constantes de chaîne par défaut, Android Studio s'occupe des constantes par défaut.
5 Modifiez AndroidManifest.xml comme indiqué ci-dessous
6 Exécutez l'application pour lancer l'émulateur Android et vérifier le résultat des modifications effectuées dans l'application.

Voici le contenu du fichier d'activité principal modifié 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);
         }
      });

   }
}

Voici le contenu de res/layout/activity_main.xml fichier -

<?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>

Voici le contenu de res/values/strings.xml pour définir deux nouvelles constantes -

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

Voici le contenu par défaut de 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>

Essayons d'exécuter votre My Applicationapplication. Je suppose que vous avez connecté votre appareil mobile Android à votre ordinateur. Pour exécuter l'application à partir du studio Android, ouvrez l'un des fichiers d'activité de votre projet et cliquez sur l' icône Exécuter dans la barre d'outils.Sélectionnez votre appareil mobile comme option, puis vérifiez votre appareil mobile qui affichera l'écran suivant -

Maintenant, utilisez Call bouton pour passer un appel téléphonique comme indiqué ci-dessous -