如何在显示电话号码的情况下打开拨号器?

Nik*_*Nik 180 android phone-number android-intent

我不需要拨打电话号码,我只需要拨打拨号就可以显示已经显示的电话号码.我Intent应该用什么来实现这个目标?

AAn*_*kit 505

实现它的两种方法.

1)需要通过代码启动拨号器,无需用户交互.

你需要Action_Dial,

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

Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:0123456789"));
startActivity(intent); 
Run Code Online (Sandbox Code Playgroud)

'tel:'前缀是必需的,否则将抛出以下异常: java.lang.IllegalStateException:无法执行活动的方法.

Action_Dial不需要任何权限.

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

<uses-permission android:name="android.permission.CALL_PHONE" />
Run Code Online (Sandbox Code Playgroud)

2)需要用户点击Phone_Number字符串并开始通话.

android:autoLink="phone" 
Run Code Online (Sandbox Code Playgroud)

您需要使用带有以下属性的TextView.

android:autoLink ="phone"android:linksClickable ="true"是一个textView属性

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

  • 这很好,它与Intent.ACTION_CALL的不同之处在于它不会立即调用 (8认同)
  • 2012 ...过去的美好时光。从政治上来说,这是正确的2018年,大公司出售用户数据,我们的应用程序需要应对Android官僚主义,才能不支持短信和电话通话。 (2认同)

ash*_*duh 50

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


gpr*_*our 13

好的,这个问题的答案会非常晚。但如果您想在Kotlin 中进行,这里只是一个示例。

val intent = Intent(Intent.ACTION_DIAL)
intent.data = Uri.parse("tel:<number>")
startActivity(intent)
Run Code Online (Sandbox Code Playgroud)

认为它可能会帮助某人。