我已经实施了“触摸来电话”'我的应用程序中的功能,我有3个按钮,我可以通过单击按钮直接拨打电话。我拨打了100,101,112个号码。该代码完美地适用于100和101,但是当我点击112按钮然后它会将我引导到键盘屏幕,在那里我可以拨打电话而不是直接拨打电话。这只发生在112号。我只是厌倦了这个。请帮忙。
相同的代码
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.imgBell112:
checkCallPermission("112");
break;
}
}
public void checkCallPermission(String mobile) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {
{
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + mobile));
startActivity(intent);
}
} else {
if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), Manifest.permission.CALL_PHONE)) {
Toast.makeText(getActivity(), getResources().getString(R.string.kentoren_office_details_msg), Toast.LENGTH_LONG).show();
}
ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.CALL_PHONE}, CALL_REQUEST);
}
} else {
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + mobile));
startActivity(intent);
}
}
答案 0 :(得分:1)
这可能是因为112
在某些国家/地区(例如德国)是紧急号码,并且它们会阻止“直接呼叫”。这些数字。您可以使用数字911验证。
答案 1 :(得分:0)
您需要在清单
中授予紧急号码清单权限CALL_PRIVILEGED
的权限
像这样拨号
Uri uri = Uri.parse("tel://911");
Intent dialIntent = new Intent(Intent.ACTION_CALL,uri);
callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_NO_USER_ACTION);
startActivity(dialIntent);
希望对你有用!