在Android中拨打911

时间:2011-03-14 11:44:23

标签: android android-intent dialog android-permissions phone-call

我想使用Android SDK拨打紧急号码。

我使用以下代码来拨打号码(911)。此代码适用于除911(紧急号码)以外的所有号码。当我使用911时,它会显示我不想要的拨号器屏幕。是否有任何程序在不打开拨号器的情况下拨打911或者我们是否可以阻止用户在拨号器屏幕中编辑号码?

Uri callUri = Uri.parse("tel://911");
Intent callIntent = new Intent(Intent.ACTION_DIAL,callUri);
callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_NO_USER_ACTION);
startActivity(callIntent);

3 个答案:

答案 0 :(得分:7)

Action_Dial将打开拨号盘,Action_Call将直接调用..

但是,来自ACTION_CALL的引用:

  

注意:此Intent 不能用于   拨打紧急号码。应用   可以拨打紧急电话号码   但是,ACTION_DIAL。

答案 1 :(得分:7)

提供的代码应该已经可以使用,但您需要CALL_PHONE和CALL_PRIVILEGED权限才能拨打紧急号码而不显示拨号盘。

Android Reference - Manifest Permission CALL_PRIVILEGED

一旦将其添加到清单中,您应该能够使用相同的代码使用ACTION_CALL代替直接拨号:

Uri callUri = Uri.parse("tel://911");
Intent callIntent = new Intent(Intent.ACTION_CALL,callUri);
callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_NO_USER_ACTION);
startActivity(callIntent);

答案 2 :(得分:0)

说{{1x}}而不是Intent.ACTION_CALL这会拨打电话号码,而不会在拨号盘上显示。