Answers:
实现它的两种方法。
1)需要通过代码启动拨号程序,而无需用户交互。
你需要Action_Dial
,
使用以下代码,它将打开带有指定号码的拨号程序
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:0123456789"));
startActivity(intent);
“ tel:”前缀是必需的,否则将引发以下异常: java.lang.IllegalStateException:无法执行活动的方法。
Action_Dial不需要任何许可。
如果您想直接发起呼叫而无需用户干预,则可以使用action Intent.ACTION_CALL
。在这种情况下,您必须在AndroidManifest.xml中添加以下权限:
<uses-permission android:name="android.permission.CALL_PHONE" />
2)需要用户单击Phone_Number字符串并开始通话。
android:autoLink="phone"
您需要将TextView与以下属性一起使用。
android:autoLink =“ phone” android:linksClickable =“ true”一个textView属性
您不需要使用intent或通过这种方式获得许可。
如上面的@ashishduh所述,使用android:autoLink="phone
也是一个很好的解决方案。但是此选项有一个缺点,它不适用于所有电话号码长度。例如,此选项不适用于11个电话号码。解决方案是在您的电话号码前加上国家/地区代码。
例:
08034448845
不会工作
但是+2348034448845
会
在清单中添加权限:
<uses-permission android:name="android.permission.CALL_PHONE" />
制作按钮或任何小部件示例: btnCall
btnCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent callIntent = new Intent(Intent.ACTION_DIAL);
callIntent.setData(Uri.parse("tel: +98990*******");
startActivity(callIntent);
}
});