0

我正在创建一个会议管理器应用程序。我在通话期间使用 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 时间延迟。我该如何给?

4

2 回答 2

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);
}

}

于 2013-08-14T10:23:43.660 回答
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()));
于 2013-08-09T06:55:18.313 回答