我如何拨号器与显示的电话号码开?(How do I get the dialer to open w

2019-06-17 14:06发布

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

Answer 1:

两种方式来实现它。

1)需要开始经由代码拨号程序,而无需用户交互。

你需要Action_Dial

使用下面的代码就会打开拨号器号指定

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

在“电话:”前缀是必需的 ,otherwhise以下,会引发异常:java.lang.IllegalStateException:无法执行活动的方法。

Action_Dial不需要任何许可。

如果您想直接发起呼叫,而无需用户的交互 ,可以使用动作Intent.ACTION_CALL 。 在这种情况下,你必须添加以下权限在AndroidManifest.xml中:

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

2)需要用户点击PHONE_NUMBER字符串,并开始呼叫。

android:autoLink="phone" 

您需要使用的TextView下面财产。

机器人:自动链接=“手机”机器人:linksClickable =“真”一个TextView属性

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



Answer 2:

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



Answer 3:

正如@ashishduh上面提到的,使用android:autoLink="phone 。也是一个不错的解决办法,而这个选项需要一个缺点,它并不适用于所有的电话号码长度的工作。例如,11位数字的电话号码不会使用此选项工作。该解决方案是与国家代码前缀您的电话号码。

例:

08034448845将无法正常工作

+2348034448845



Answer 4:

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

这是你如何可以直接打开的EditText标签赋予数量上拨号。



文章来源: How do I get the dialer to open with phone number displayed?