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
Teraz użyj Call przycisk, aby wykonać połączenie telefoniczne, jak pokazano poniżej -