美文网首页
Android 拨打电话(分机号码处理)

Android 拨打电话(分机号码处理)

作者: 哎呀啊噢 | 来源:发表于2019-04-24 21:18 被阅读0次

    Android中调用系统电话的方式有俩种:
    第一种:

    Uri uri = Uri.parse("tel:" + phoneNum);
    Intent intent = new Intent(Intent.ACTION_CALL, uri);  
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   
    context.startActivity(intent);
    

    第二种:

    Uri uri = Uri.parse("tel:" + phoneNum);
    Intent intent = new Intent(Intent.ACTION_DIAL, uri);  
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(intent);
    

    俩种区别:
    1、第一种直接调起拨打电话,没有拨号界面,但是在6.0系统之后,需要动态获取权限,添加
    <uses-permission android:name="android.permission.CALL_PHONE" />
    2、第二种是先调起拨号界面,然后用户手动点击拨打按钮,进入拨打界面,不需要权限;

    正常来说,俩种都可以实现拨打电话的需求,但是如果遇到400+号码+分机号码就会有问题了,一般分机号码都会以“转”或“-”来表示分机号码,但是我们调起电话的时候,却发现,并不能直接拨通分机号码,需要手动输入分机号码,明显体验不行啊,甚至有些手机不识别;
    解决:
    1、直接以第一种方式调用系统拨打电话,不显示拨号码界面,用户电话确认拨打,直接拨通电话;
    2、对于电话的处理,首先,我们应该把分机号码前边的表示替换成“,,”(原来都是一个,号,但是不行);然后直接调起

    结果:
    经过不同机型的测试,三星、华为等手机,拨打的号码不显示分机号码,只会显示400+电话,但是电话语音提示输入分机号码时,就会自动拨通分机号码,成功;
    OPPO、vivo等手机,会显示完成的“400+,,分机号”码电话,然后电话语音提示输入分机号码之后,会听到系统自动输入的嘀嘀声音,然后拨打成功;

    弊端:
    以直接调起系统拨打电话的方式,需要自己处理好动态权限的问题,毕竟Android6.0之后,动态权限也是很恶心...

    相关文章

      网友评论

          本文标题:Android 拨打电话(分机号码处理)

          本文链接:https://www.haomeiwen.com/subject/ghwngqtx.html