如何在Android中接听和挂断电话?

How to pick up and hung up calls in android?

此示例演示了如何在android中接听和挂断电话。

步骤1 ? 在Android Studio中创建一个新项目,转到文件? 新建项目,并填写所有必需的详细信息以创建一个新项目。

第2步 ? 将以下代码添加到res / layout / activity_main.xml。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context="MainActivity">

 <TextView
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_centerInParent="true"
   android:text="Pick up and hung up calls"
   android:textSize="24sp"
   android:textStyle="bold|italic"/>

</RelativeLayout>

第3步? 将以下代码添加到src / MainActivity.java中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import android.Manifest;
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);

   if (ContextCompat.checkSelfPermission(MainActivity.this,
    Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED){
    if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,
      Manifest.permission.READ_PHONE_STATE)){
      ActivityCompat.requestPermissions(MainActivity.this,
      new String[]{Manifest.permission.READ_PHONE_STATE}, 1);
    }else{
      ActivityCompat.requestPermissions(MainActivity.this,
      new String[]{Manifest.permission.READ_PHONE_STATE}, 1);
    }
   }else{
    notify();
   }
 }
 @Override
 public void onRequestPermissionsResult(int requestCode, String[] permissions,
   int[] grantResults){
    switch (requestCode){
      case 1: {
       if (grantResults.length>0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
         if (ContextCompat.checkSelfPermission(MainActivity.this,
          Manifest.permission.READ_PHONE_STATE)==PackageManager.PERMISSION_GRANTED){
          Toast.makeText(this,"Permission Granted", Toast.LENGTH_SHORT).show();
         }
       }else{
         Toast.makeText(this,"Permission Denied", Toast.LENGTH_SHORT).show();
       }
       return;
      }
    }
   }
}

步骤4 –右键单击项目,选择New-> Java class,然后在callManager.java中添加以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class callManager extends BroadcastReceiver {
 @Override
 public void onReceive(Context context, Intent intent) {
   try{
    Toast.makeText(context,"Pick up call", Toast.LENGTH_SHORT).show();
   }catch (Exception e){
    e.printStackTrace();
   }
 }
}

第5步-将以下代码添加到androidManifest.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="app.com.sample">

 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

 <application
   android:allowBackup="true"
   android:icon="@mipmap/ic_launcher"
   android:label="@string/app_name"
   android:roundIcon="@mipmap/ic_launcher_round"
   android:supportsRtl="true"
   android:theme="@style/AppTheme">
   
    <intent-filter>
     
      <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
   </activity>
 </application>
</manifest>

让我们尝试运行您的应用程序。 我假设您已将实际的Android Mobile设备与计算机连接。 要从android studio运行该应用,请打开您项目的活动文件之一,然后从工具栏中单击运行 icon。 选择您的移动设备作为选项,然后检查将显示默认屏幕的移动设备–