//第一种只跳转到拨号界面:
//跳转到拨号界面
Intent Intent = new Intent(android.content.Intent.ACTION_CALL_BUTTON);
startActivity(Intent);
//第二种跳转到拨号界面,同时传递电话号码过去:
//跳转到拨号界面,同时传递电话号码过去
Intent Intent = new Intent(android.content.Intent.ACTION_DIAL,Uri.parse("tel:" + "10086"));
startActivity(Intent);
//第三种直接拨打电话:
//先在AndroidManifest.xml里写上权限:
//<uses-permission android:name="android.permission.CALL_PHONE" />
//直接拨打电话,手机6.0以上还需要动态权限,下面开始申请。
//拨号请求码:
public static final int REQUEST_CALL_PERMISSION = 10111;
//开始申请:
public boolean checkReadPermission(String string_permission,int request_code) {
boolean flag = false;
//已有权限
if (ContextCompat.checkSelfPermission(this, string_permission) == PackageManager.PERMISSION_GRANTED) {
flag = true;
} else {
//申请权限
ActivityCompat.requestPermissions(this, new String[]{string_permission}, request_code);
}
return flag;
}
//判断是否申请到权限:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode) {
//拨打电话
case REQUEST_CALL_PERMISSION:
//失败,吐司
if (permissions.length != 0 && grantResults[0] != PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this,"请允许拨号权限后再试",Toast.LENGTH_SHORT).show();
} else {
//成功,直接调用开始拨打方法
call("tel:"+"10086");
}
break;
}
}
//开始拨打方法:
public void call(String telPhone){
if(checkReadPermission(Manifest.permission.CALL_PHONE,REQUEST_CALL_PERMISSION)){
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse(telPhone));
startActivity(intent);
}
}
//我在点击事件里调用:
Button mDaDianHua = findViewById(R.id.mDaDianHua);
mDaDianHua.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
call("tel:"+"10086");
}
});
//打电话报错:ActivityNotFoundException:
有时候你要是不加Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+"10086")); startActivity(intent);这里面的"tel:",就会报一个错:ActivityNotFoundException,加上就好了
//-------------------------------------------------------------------------完----------------------------------------------------------------------------