Android - ligações

O Android fornece aplicativos integrados para chamadas telefônicas, em algumas ocasiões podemos precisar fazer uma chamada através de nosso aplicativo. Isso pode ser feito facilmente usando Intent implícito com ações apropriadas. Além disso, podemos usar as classes PhoneStateListener e TelephonyManager, a fim de monitorar as mudanças em alguns estados de telefonia no dispositivo.

Este capítulo lista todas as etapas simples para criar um aplicativo que pode ser usado para fazer uma chamada telefônica. Você pode usar o Android Intent para fazer chamadas chamando a funcionalidade integrada de chamada telefônica do Android. A seção a seguir explica as diferentes partes de nosso objeto Intent necessárias para fazer uma chamada.

Objeto de intenção - Ação para fazer ligação telefônica

Você vai usar ACTION_CALLação para acionar a funcionalidade interna de chamada telefônica disponível no dispositivo Android. A seguir está uma sintaxe simples para criar um intent com a ação ACTION_CALL

Intent phoneIntent = new Intent(Intent.ACTION_CALL);

Você pode usar ACTION_DIAL ação em vez de ACTION_CALL, nesse caso, você terá a opção de modificar o número de telefone codificado antes de fazer uma chamada em vez de fazer uma chamada direta.

Objeto de intenção - dados / tipo para fazer chamada telefônica

Para fazer uma chamada em um determinado número 91-000-000-0000, você precisa especificar tel: como URI usando o método setData () da seguinte maneira -

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

O interessante é que, para fazer uma ligação, você não precisa especificar nenhum dado ou tipo de dado extra.

Exemplo

O exemplo a seguir mostra de forma prática como usar o Android Intent para fazer chamadas para o número de celular fornecido.

Para experimentar este exemplo, você precisará de um dispositivo móvel real equipado com o sistema operacional Android mais recente, caso contrário, terá que lutar com o emulador, que pode não funcionar.
Degrau Descrição
1 Você usará o Android Studio IDE para criar um aplicativo Android e nomeá-lo como Meu aplicativo no pacote com.example.saira_000.myapplication .
2 Modifique o arquivo src / MainActivity.java e adicione o código necessário para cuidar de fazer uma chamada.
3 Modifique o arquivo XML de layout res / layout / activity_main.xml e adicione qualquer componente GUI, se necessário. Estou adicionando um botão simples para ligar para o número 91-000-000-0000
4 Não há necessidade de definir constantes de string padrão. O Android Studio cuida das constantes padrão.
5 Modifique AndroidManifest.xml conforme mostrado abaixo
6 Execute o aplicativo para iniciar o emulador Android e verifique o resultado das alterações feitas no aplicativo.

A seguir está o conteúdo do arquivo de atividade principal modificado 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);
         }
      });

   }
}

A seguir estará o conteúdo de res/layout/activity_main.xml arquivo -

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

A seguir estará o conteúdo de res/values/strings.xml para definir duas novas constantes -

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

A seguir está o conteúdo padrão 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>

Vamos tentar executar o seu My Applicationinscrição. Presumo que você tenha conectado seu dispositivo Android Mobile real ao computador. Para executar o aplicativo do Android Studio, abra um dos arquivos de atividade do seu projeto e clique no ícone Executar na barra de ferramentas. Selecione seu dispositivo móvel como uma opção e, em seguida, verifique seu dispositivo móvel, que exibirá a tela a seguir -

Agora usa Call botão para fazer uma chamada, conforme mostrado abaixo -