我不需要拨打电话号码,我只需要拨号器打开,电话号码已经显示出来。我应该使用什么意图来实现这一点?
当前回答
使用kotlin的辅助函数:
fun openDialPad(context: Context, phoneNum: String) {
val intent = Intent(Intent.ACTION_DIAL)
intent.setData(Uri.parse("tel:$phoneNum"))
context.startActivity(intent)
}
其他回答
正如@ashishduh上面提到的,使用android:autoLink="phone也是一个很好的解决方案。但这个选项有一个缺点,它并不适用于所有的电话号码长度。例如,有11个号码的电话号码将无法使用此选项。解决办法是在电话号码前加上国家代码。
例子:
08034448845无效
但是+2348034448845会
<TextView
android:id="@+id/phoneNumber"
android:autoLink="phone"
android:linksClickable="true"
android:text="+91 22 2222 2222"
/>
这就是如何在拨号器上直接打开EditText标签分配的数字。
相当晚的答案,但如果你有一个TextView,你正在显示电话号码,那么你不需要处理意图在所有,你可以只是使用XML属性android:autoLink="电话"和操作系统将自动启动一个ACTION_DIAL意图。
使用kotlin的辅助函数:
fun openDialPad(context: Context, phoneNum: String) {
val intent = Intent(Intent.ACTION_DIAL)
intent.setData(Uri.parse("tel:$phoneNum"))
context.startActivity(intent)
}
你可以这样调用Intent:
String number = "0123456789";
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:" + number));
startActivity(intent);
推荐文章
- 视图绑定-我如何获得包含布局的绑定?
- 在Android Studio中改变矢量资产的填充颜色
- 在构建中编写注释的语法是什么?gradle文件?
- 如何以编程方式添加按钮色调
- 用Android Studio进行调试永远停留在“等待调试器”状态
- Openssl不被视为内部或外部命令
- 无法执行dex:在Eclipse中超过GC开销限制
- 如何以编程方式将视图添加到视图
- 单击url会打开默认浏览器
- 使用Retrofit刷新OAuth令牌,而不修改所有调用
- 多个dex文件定义了landoid /support/v4/accessibilityservice/AccessibilityServiceInfoCompat
- 如何获得动作栏的高度?
- 从活动外部调用startActivity() ?
- createScaledBitmap的过滤器参数做什么?
- 为什么我在使用adb时访问数据文件夹被拒绝?