我不需要拨打电话号码,我只需要拨号器打开,电话号码已经显示出来。我应该使用什么意图来实现这一点?
当前回答
有两种方法。
1)需要通过代码启动拨号器,无需用户交互。
你需要Action_Dial,
使用下面的代码,它将打开拨号器与指定的数字
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:0123456789"));
startActivity(intent);
'tel:'前缀是必需的,否则将抛出以下异常: 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。
android: autoLink = "电话" android:linksClickable="true"一个textView属性
你不需要使用意图或通过这种方式获得许可。
其他回答
使用kotlin的辅助函数:
fun openDialPad(context: Context, phoneNum: String) {
val intent = Intent(Intent.ACTION_DIAL)
intent.setData(Uri.parse("tel:$phoneNum"))
context.startActivity(intent)
}
有两种方法。
1)需要通过代码启动拨号器,无需用户交互。
你需要Action_Dial,
使用下面的代码,它将打开拨号器与指定的数字
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:0123456789"));
startActivity(intent);
'tel:'前缀是必需的,否则将抛出以下异常: 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。
android: autoLink = "电话" android:linksClickable="true"一个textView属性
你不需要使用意图或通过这种方式获得许可。
相当晚的答案,但如果你有一个TextView,你正在显示电话号码,那么你不需要处理意图在所有,你可以只是使用XML属性android:autoLink="电话"和操作系统将自动启动一个ACTION_DIAL意图。
好吧,现在回答这个问题已经非常晚了。但如果您想在Kotlin中实现它,这里只是一个示例。
val intent = Intent(Intent.ACTION_DIAL)
intent.data = Uri.parse("tel:<number>")
startActivity(intent)
也许能帮到别人。
正如@ashishduh上面提到的,使用android:autoLink="phone也是一个很好的解决方案。但这个选项有一个缺点,它并不适用于所有的电话号码长度。例如,有11个号码的电话号码将无法使用此选项。解决办法是在电话号码前加上国家代码。
例子:
08034448845无效
但是+2348034448845会
推荐文章
- 在应用程序本身中更改Locale
- apk (.apk)和应用程序包(.aab)的区别
- 如何设置超时在改造库?
- Android - SPAN_EXCLUSIVE_EXCLUSIVE跨度不能为零长度
- TextView的字体大小在Android应用程序改变字体大小从本机设置
- 如何模拟Android杀死我的进程
- 禁用EditText闪烁光标
- Android Eclipse -无法找到*.apk
- 设置TextView文本从html格式的字符串资源在XML
- 如何允许所有网络连接类型HTTP和HTTPS在Android(9)馅饼?
- Android加载JS包失败
- Android Studio, logcat在应用程序关闭后清理
- 在android中从上下文获取活动
- 无法解析主机"<URL here>"没有与主机名关联的地址
- getActivity()在Fragment函数中返回null