gpt4 book ai didi

android - 向拨号器发送暂停

转载 作者:IT老高 更新时间:2023-10-28 22:03:21 30 4
gpt4 key购买 nike

类似于 Sending Pause and DTMF input in android ,我正在尝试将暂停字符“,”发送到拨号器。这适用于 HTC Sense 手机甚至 Xoom,但不适用于 Nexus One 或 T-Mobile G2 等“库存体验”手机(我怀疑是摩托罗拉 Droid)。

这些电话似乎有一个拨号器,它试图对号码进行漂亮的格式化(即添加破折号)并在遇到逗号字符时停止。有趣的是,它不会阻塞“p”字符,尽管它会去掉“p”并继续添加数字。

这是 ActivityManager 看到的内容:

I/ActivityManager(   92): Starting activity: Intent { act=android.intent.action.DIAL dat=tel:8883333,444 cmp=com.android.contacts/.DialtactsActivity }

我还尝试了编码形式“tel:8883333%2C444”,这些手机的行为没有区别。如前所述,我尝试了“p”,但这些字符被删除,导致拨号器错误地填充了 888-333-3444,而且我不确定“p”是否正确。

那么,问题来了:有没有办法指定适用于大多数或所有安卓拨号器的暂停?

最佳答案

简答:看起来不可能使用 native 拨号器。

长答案:

Android 中的原生拨号器使用以下代码提取您使用 Intent 传递给拨号器的号码

if ("tel".equals(uri.getScheme())) {
// Put the requested number into the input area
String data = uri.getSchemeSpecificPart();
setFormattedDigits(data, null);
return true;
}

setFormattedDigits 方法中,数字因此被转换:

  String dialString = PhoneNumberUtils.extractNetworkPortion(data);

查看 extractNetworkPortion 的文档,您会注意到它“提取网络地址部分 [其中] 网络地址部分是 直到 DTMF 控制数字分隔符(暂停或等等)

因此,代码有意删除了暂停字符及其后面的任何内容。我能想到的唯一选择是替换拨号器或使用 ACTION_CALL 操作而不是 ACTION_DIAL。这将绕过拨号程序,因此应谨慎使用。

关于android - 向拨号器发送暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5750773/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com