如何让拨号程序显示电话号码?

我不需要拨打电话号码,我只需要拨号器打开已显示的电话号码。 我应该用什么Intent来达到这个目的?

两种方式来实现它。

1)必须通过代码启动拨号器,无需用户交互。

你需要Action_Dial

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

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

“tel:”前缀是必需的 ,否则会抛出以下exception: java.lang.IllegalStateException:无法执行活动的方法。

Action_Dial不需要任何权限。

如果您想在没有用户交互的情况下直接启动调用 ,则可以使用Intent.ACTION_CALL动作。 在这种情况下,您必须在AndroidManifest.xml中添加以下权限:

 <uses-permission android:name="android.permission.CALL_PHONE" /> 

2)让用户点击Phone_Numberstring并开始通话。

 android:autoLink="phone" 

你需要使用下面的属性TextView。

android:autoLink =“phone”android:linksClickable =“true”一个textView属性

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

答案很晚,但如果你有一个TextView ,你显示的电话号码,那么你根本不需要处理意图,你可以使用XML属性android:autoLink="phone"和操作系统将自动启动一个ACTION_DIAL意图。

就像上面提到的@ashishduh一样,使用android:autoLink="phone也是一个很好的解决scheme,但是这个选项有一个缺点,它不适用于所有的电话号码长度,例如11个电话号码使用这个选项。解决办法是在你的电话号码前加上国家代码。

例:

08034448845将无法正常工作

但是+2348034448845

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

这就是如何直接在拨号器上打开EditText标签分配号码。