今天遇到了一个很难解的问题,简单说来就是拨打一个电话号码,打通后自动输入不同的数字命令。代码如下
private void callout(String number) {
if (!TextUtils.isEmpty(number)) {
number = URLEncoder.encode(number);
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"
+ number));
AndroidUtilWrapper.startActivity(intent, context);
}
}
这种电话的意思,有点像我们打通移动客服后,输入1查询话费余额,这样number的格式就是
number="10086,1";
即带有特殊字符的电话号码。但是按照这种格式,始终没有成功,还是要自己按下1才能查询话费余额。
http://bbs.youkuaiyun.com/topics/390310636这个帖子里介绍了一些相关的东西,不过并没有让我找到答案。
后来我无耻的拿客服做了N次试验,终于找到了答案!!
经过反复试验,我发现电话号码中的","占用一个数字的拨号,简单来说,可以理解为起到延迟作用。在我用
number="10086,,,,,,1";再次拨号后,竟然成功了!!
很简单的一个延迟原理,花费了好大力气才解决,在此记录下来。
本文探讨了在拨打电话号码时,特殊字符如何起到拨号延迟作用的原理,通过试验发现电话号码中的占用一个数字的拨号,以此实现简单的延迟效果。文章详细记录了解决过程和关键发现。
1万+

被折叠的 条评论
为什么被折叠?



