1

我的应用程序中有一个要求,即我需要在紧急情况下直接拨打警察电话,无需任何用户交互。根据Android文档,

应用程序可以使用 ACTION_DIAL 拨打紧急号码

所以我使用了如下的 ACTION_DIAL 意图:

Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:+91100"));
startActivity(intent);

但不是直接拨打 +91100,在某些设备中,拨号器屏幕会显示预先填充的号码,我们需要单击“呼叫”图标来拨打电话,而在其他一些设备中,它会要求我选择我想要的应用程序拨打电话。我希望直接从默认电话拨号器拨打电话,无需任何用户交互,因为当用户处于紧急情况时会拨打此电话。

您能否让我知道是否有任何方法可以实现这一目标?

谢谢你。

4

2 回答 2

3

您需要特殊的 CALL_PRIVLIDGED 权限。但是,此权限是系统级别的权限,只有在预安装或在有根电话时才能访问。 https://developer.android.com/reference/android/Manifest.permission.html#CALL_PRIVILEGED

于 2018-01-17T06:02:07.203 回答
0

如果用户已授予android.permission.CALL_PHONE 您的应用权限,您可以使用 直接拨打任何号码ACTION_CALL,如果用户未授予拨打权限,您可以检查并处理ACTION_DIAL如下:

if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {
    intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:+91100"));
    startActivity(intent);
} else {
    intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:+91100"));
    startActivity(intent);
}
于 2018-01-17T06:51:04.870 回答