Android - rozmowy telefoniczne

Android zapewnia wbudowane aplikacje do połączeń telefonicznych, w niektórych przypadkach może być konieczne wykonanie połączenia telefonicznego za pośrednictwem naszej aplikacji. Można to łatwo zrobić, używając ukrytego zamiaru i odpowiednich działań. Możemy również użyć klas PhoneStateListener i TelephonyManager, aby monitorować zmiany niektórych stanów telefonii na urządzeniu.

W tym rozdziale wymieniono wszystkie proste kroki, aby utworzyć aplikację, której można użyć do wykonania połączenia telefonicznego. Możesz używać Android Intent do wykonywania połączeń telefonicznych, wywołując wbudowaną funkcję rozmowy telefonicznej systemu Android. Poniższa sekcja wyjaśnia różne części naszego obiektu Intent wymagane do wykonania połączenia.

Cel - działanie mające na celu nawiązanie połączenia telefonicznego

Będziesz używać ACTION_CALLakcja wyzwalająca wbudowaną funkcję połączenia telefonicznego dostępną w urządzeniu z systemem Android. Poniżej przedstawiono prostą składnię do tworzenia intencji z akcją ACTION_CALL

Intent phoneIntent = new Intent(Intent.ACTION_CALL);

Możesz użyć ACTION_DIAL action zamiast ACTION_CALL, w takim przypadku będziesz mieć możliwość zmodyfikowania zakodowanego numeru telefonu przed wykonaniem połączenia zamiast bezpośredniego połączenia.

Obiekt zamiaru - dane / typ do wykonania połączenia telefonicznego

Aby zadzwonić pod podany numer 91-000-000-0000, należy określić tel: jako URI przy użyciu metody setData () w następujący sposób -

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

Ciekawostką jest to, że aby wykonać połączenie telefoniczne, nie musisz podawać żadnych dodatkowych danych ani ich typu.

Przykład

Poniższy przykład pokazuje w praktyce, jak używać Android Intent do wykonywania połączeń telefonicznych na podany numer telefonu komórkowego.

Aby poeksperymentować z tym przykładem, będziesz potrzebować rzeczywistego urządzenia mobilnego wyposażonego w najnowszy system operacyjny Android, w przeciwnym razie będziesz musiał zmagać się z emulatorem, który może nie działać.
Krok Opis
1 Użyjesz Android Studio IDE do stworzenia aplikacji na Androida i nazwij ją jako Moja aplikacja w pakiecie com.example.saira_000.myapplication .
2 Zmodyfikuj plik src / MainActivity.java i dodaj wymagany kod, aby zająć się wykonywaniem połączeń.
3 Zmodyfikuj plik XML układu res / layout / activity_main.xml, dodaj dowolny komponent GUI, jeśli jest to wymagane. Dodaję prosty przycisk, aby zadzwonić pod numer 91-000-000-0000
4 Nie ma potrzeby definiowania domyślnych stałych ciągów, a Android Studio dba o domyślne stałe.
5 Zmodyfikuj plik AndroidManifest.xml, jak pokazano poniżej
6 Uruchom aplikację, aby uruchomić emulator Androida i zweryfikować wynik zmian wprowadzonych w aplikacji.

Poniżej znajduje się zawartość zmodyfikowanego pliku głównego działania 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);
         }
      });

   }
}

Poniżej będzie treść res/layout/activity_main.xml plik -

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

Poniżej będzie treść res/values/strings.xml zdefiniować dwie nowe stałe -

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

Poniżej znajduje się domyślna zawartość 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>

Spróbujmy uruchomić Twój My Applicationpodanie. Zakładam, że podłączyłeś swoje rzeczywiste urządzenie mobilne z systemem Android do komputera. Aby uruchomić aplikację ze studia Android, otwórz jeden z plików aktywności projektu i kliknij

ikonę Uruchom na pasku narzędzi Wybierz urządzenie mobilne jako opcję, a następnie sprawdź urządzenie mobilne, które wyświetli następujący ekran -

Teraz użyj Call przycisk, aby wykonać połączenie telefoniczne, jak pokazano poniżej -