我并不需要拨打的电话号码,我只需要在拨号器已经显示的电话号码开。 什么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?