- 在Android设备上打开“电话”应用程序。
- 在数字键盘上输入所需的电话号码。
- 点击绿色的电话图标,开始通话。
- 如果您需要进行国际拨号,请在电话号码前加上+和国家代码。
- 如果您需要使用拨打卡或者拨打软件,您可以在Google Play商店中下载合适的应用程序来完成拨号。
- 获取权限
首先需要在 AndroidManifest.xml 文件中添加以下权限:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
- 创建拨号 Intent
使用 Intent.ACTION_CALL 可以创建一个拨打电话的 Intent 对象,代码如下:
String phoneNum = “10086”;
Uri uri = Uri.parse(“tel:” + phoneNum);
Intent intent = new Intent(Intent.ACTION_CALL, uri);
- 拨打电话
使用 startActivity 方法启动拨号 Intent,即可实现拨打电话功能:
startActivity(intent);
注意:使用 ACTION_CALL 需要申请 CALL_PHONE 权限,使用 ACTION_DIAL 则不需要。
完整代码:
public class MainActivity extends AppCompatActivity {
private Button btnDial, btnCall;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnDial = findViewById(R.id.btn_dial);
btnCall = findViewById(R.id.btn_call);
btnDial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String phoneNum = "10086";
Uri uri = Uri.parse("tel:" + phoneNum);
Intent intent = new Intent(Intent.ACTION_DIAL, uri);
startActivity(intent);
}
});
btnCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String phoneNum = "10086";
Uri uri = Uri.parse("tel:" + phoneNum);
Intent intent = new Intent(Intent.ACTION_CALL, uri);
if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {
startActivity(intent);
} else {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CALL_PHONE}, 1);
}
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == 1) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
btnCall.performClick();
}
}
}
}
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/116200.html