Android - Cuộc gọi điện thoại

Android cung cấp các ứng dụng cài sẵn cho các cuộc gọi điện thoại, trong một số trường hợp, chúng tôi có thể cần gọi điện thông qua ứng dụng của mình. Điều này có thể dễ dàng được thực hiện bằng cách sử dụng Ý định ngầm với các hành động thích hợp. Ngoài ra, chúng ta có thể sử dụng các lớp PhoneStateListener và TelephonyManager, để theo dõi những thay đổi trong một số trạng thái điện thoại trên thiết bị.

Chương này liệt kê tất cả các bước đơn giản để tạo một ứng dụng có thể được sử dụng để thực hiện Cuộc gọi điện thoại. Bạn có thể sử dụng Android Intent để thực hiện cuộc gọi điện thoại bằng chức năng Gọi điện thoại được tích hợp sẵn của Android. Phần sau giải thích các phần khác nhau của đối tượng Intent cần thiết để thực hiện cuộc gọi.

Đối tượng ý định - Hành động thực hiện cuộc gọi điện thoại

Bạn sẽ sử dụng ACTION_CALLhành động để kích hoạt chức năng gọi điện tích hợp sẵn có trong thiết bị Android. Sau đây là cú pháp đơn giản để tạo một ý định với hành động ACTION_CALL

Intent phoneIntent = new Intent(Intent.ACTION_CALL);

Bạn có thể dùng ACTION_DIAL hành động thay vì ACTION_CALL, trong trường hợp đó, bạn sẽ có tùy chọn sửa đổi số điện thoại được mã hóa cứng trước khi thực hiện cuộc gọi thay vì thực hiện cuộc gọi trực tiếp.

Đối tượng ý định - Dữ liệu / Loại để thực hiện cuộc gọi điện thoại

Để gọi điện theo một số nhất định 91-000-000-0000, bạn cần chỉ định tel: dưới dạng URI sử dụng phương thức setData () như sau:

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

Điểm thú vị là, để gọi điện, bạn không cần chỉ định thêm bất kỳ dữ liệu hay kiểu dữ liệu nào.

Thí dụ

Ví dụ sau đây cho bạn thấy cách sử dụng Android Intent thực tế để gọi điện đến số điện thoại di động nhất định.

Để thử nghiệm với ví dụ này, bạn sẽ cần thiết bị Di động thực tế được trang bị Hệ điều hành Android mới nhất, nếu không, bạn sẽ phải vật lộn với trình giả lập có thể không hoạt động.
Bươc Sự miêu tả
1 Bạn sẽ sử dụng Android studio IDE để tạo ứng dụng Android và đặt tên là Ứng dụng của tôi theo gói com.example.saira_000.myapplication .
2 Sửa đổi tệp src / MainActivity.java và thêm mã bắt buộc để thực hiện cuộc gọi.
3 Sửa đổi tệp XML bố cục res / layout / activity_main.xml thêm bất kỳ thành phần GUI nào nếu cần. Tôi đang thêm một nút đơn giản để Gọi số 91-000-000-0000
4 Không cần phải xác định các hằng số chuỗi mặc định.Android studio sẽ chăm sóc các hằng số mặc định.
5 Sửa đổi AndroidManifest.xml như hình dưới đây
6 Chạy ứng dụng để khởi chạy trình giả lập Android và xác minh kết quả của các thay đổi được thực hiện trong ứng dụng.

Sau đây là nội dung của tệp hoạt động chính được sửa đổi 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);
         }
      });

   }
}

Sau đây sẽ là nội dung của res/layout/activity_main.xml tập tin -

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

Sau đây sẽ là nội dung của res/values/strings.xml để xác định hai hằng số mới -

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

Sau đây là nội dung mặc định của 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>

Hãy cố gắng chạy My Applicationứng dụng. Tôi giả sử bạn đã kết nối thiết bị di động Android thực tế với máy tính của mình. Để chạy ứng dụng từ Android studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào

biểu tượng Chạy từ thanh công cụ. Chọn thiết bị di động của bạn làm tùy chọn, sau đó kiểm tra thiết bị di động của bạn sẽ hiển thị màn hình sau -

Bây giờ sử dụng Call để gọi điện như hình bên dưới -