如何在android中为PhonenumberUtils.PAUSE()提供时间延迟?

时间:2013-08-09 06:43:54

标签: java android phone-number

我正在创建一个会议管理器应用程序。我正在使用PhonenumberUtils.PAUSE()在通话过程中延时。它只能工作几秒钟。我想根据我的意愿让它暂停几秒钟。如何能帮我的人能帮到我吗?

String telUri = "tel:" + 121 + PhoneNumberUtils.PAUSE +  4 
        +  PhoneNumberUtils.PAUSE + 6 ;
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse(telUri));
startActivity(callIntent);

现在呼叫将进入121并且没有任何时间延迟它正在执行数字4和6相同。我想给出121和4的时间延迟。我怎么能给出?

2 个答案:

答案 0 :(得分:1)

PhoneNumberUtils.PAUSE将等待2秒,而PhoneNumberUtils.PAUSe的值为“,”。

ProfileDo profile = adapter.getProfile(profileid);

    String call = "tel:";

    for (StepDO step : profile.getSteps()) {

//如果值包含#

之类的符号,则对其进行编码
        String value = URLEncoder.encode(step.getValue());

        int delay = step.getDelay();
        String pausesStr = "";
        for (int i = 0; i < delay/2; i++) {
            pausesStr += PhoneNumberUtils.PAUSE;
        }
        call += value + pausesStr;

        System.out.println(""+call);
    }
    Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse(call));
    startActivity(callIntent);
}

}

答案 1 :(得分:0)

这是一个拨号器的事情,一次暂停所需的时间并非真正由你控制,但通常 2-3秒。如果你想要更长的停顿 - 只需连续两次暂停。

另外,使用StringBuilder(记忆原因)

String doublePause = PhoneNumberUtils.PAUSE + PhoneNumberUtils.PAUSE;
StringBuilder sb = new StringBuilder("tel:").append(121).append(doublePause).append(4).append(doublePause).append(6);
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse(sb.toString()));