Android 如何打开显示电话号码的拨号器?

Android 如何打开显示电话号码的拨号器?,android,android-intent,phone-number,Android,Android Intent,Phone Number,我不需要打电话号码,我只需要拨号器打开,并且电话号码已经显示出来。我应该使用什么Intent来实现这一目标?实现这一目标的两种方法 1)需要通过代码启动拨号程序,无需用户交互。 android:autoLink="phone" 您需要操作拨号 使用下面的代码,它将打开指定号码的拨号器 Intent intent = new Intent(Intent.ACTION_DIAL); intent.setData(Uri.parse("tel:0123456789&q

我不需要打电话号码,我只需要拨号器打开,并且电话号码已经显示出来。我应该使用什么
Intent
来实现这一目标?

实现这一目标的两种方法

1)需要通过代码启动拨号程序,无需用户交互。

android:autoLink="phone" 
您需要
操作拨号

使用下面的代码,它将打开指定号码的拨号器

Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:0123456789"));
startActivity(intent); 
需要'tel:'前缀,否则将引发以下异常: java.lang.IllegalStateException:无法执行活动的方法

操作拨号不需要任何权限。

android:autoLink="phone" 
如果您想在没有用户交互的情况下直接发起呼叫,可以使用action
Intent.action\u call
。在这种情况下,必须在AndroidManifest.xml中添加以下权限:

<uses-permission android:name="android.permission.CALL_PHONE" />
您需要使用具有以下属性的TextView


你不需要使用意图或通过这种方式获得许可。

回答得很晚,但是如果你有一个显示电话号码的
TextView
,那么你根本不需要处理意图,你只需要使用XML属性
android:autoLink=“phone”
操作系统将自动启动
操作拨号
意图。

如上所述的@ashishduh,使用
android:autoLink=“手机
也是一个很好的解决方案。但是这个选项有一个缺点,它不适用于所有电话号码长度。例如,11个号码的电话号码不适用于此选项。解决方案是在电话号码前面加上国家代码

例如:

0803448845
不起作用

但是
+2348344448845


<TextView
 android:id="@+id/phoneNumber"
 android:autoLink="phone"
 android:linksClickable="true"
 android:text="+91 22 2222 2222"
 />

这就是您可以直接在拨号器上打开EditText标签指定号码的方式。

好的,回答这个问题将非常晚。但是,如果您想在Kotlin中执行此操作,这里只有一个示例

val intent = Intent(Intent.ACTION_DIAL)
intent.data = Uri.parse("tel:<number>")
startActivity(intent)
val intent=intent(intent.ACTION\u拨号)
intent.data=Uri.parse(“tel:”)
星触觉(意图)

我想这可能会对某人有所帮助。

这太好了,而且它与意图不同。ACTION\u CALL不需要立即呼叫ACTION\u DIAL需要许可,还是只有ACCESS\u CALL需要许可?这也适用于丹麦的电话号码:)您不需要在号码前加+45。只需解析电话号码就可以了。在新的意图中打开拨号键后,我们的“后退”按钮出现了问题。我可以回到我的应用程序只有在3个后退按钮按下(它显示了我没有打开拨号器的几个屏幕-拨号器本身,创建新的联系人屏幕,收藏夹)。有人知道如何只按一次后退按钮就返回应用程序吗?2012。。。过去的好日子。这在政治上是正确的2018年,大公司出售用户数据,我们的应用程序需要对付Android官僚作风,只是为了不支持短信和电话。非常快的方法!