要解决Android应用程序拨打了未指定的号码的问题,可以通过以下代码示例来实现:
private static final int REQUEST_CALL_PHONE = 1;
private String phoneNumber = "未指定的号码";
// 在需要拨打电话的地方调用此方法
private void makePhoneCall() {
// 检查是否已授予拨打电话权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE)
!= PackageManager.PERMISSION_GRANTED) {
// 如果权限未被授予,则向用户请求权限
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.CALL_PHONE}, REQUEST_CALL_PHONE);
} else {
// 如果权限已被授予,则拨打电话
callPhone();
}
}
// 处理权限请求的结果
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
if (requestCode == REQUEST_CALL_PHONE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 拨打电话
callPhone();
} else {
// 权限被拒绝
Toast.makeText(this, "拨打电话权限被拒绝", Toast.LENGTH_SHORT).show();
}
}
}
// 拨打电话
private void callPhone() {
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + phoneNumber));
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
}
请注意,使用此代码需要在运行时请求拨打电话权限,并且在AndroidManifest.xml文件中添加相应的权限声明。