今天遇到了一个很难解的问题,简单说来就是拨打一个电话号码,打通后自动输入不同的数字命令。代码如下
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";
再次拨号后,竟然成功了!!
很简单的一个延迟原理,花费了好大力气才解决,在此记录下来。