gpt4 book ai didi

java - HTC Dialer 从电话号码中删除字母

转载 作者:行者123 更新时间:2023-11-30 02:57:16 26 4
gpt4 key购买 nike

我遇到了一个问题,特别是 HTC Sense 的电话拨号器从传递给它的电话号码中删除任何字母。我正在使用此代码启动电话 Intent ,它适用于 Stock Android。我没有带 TouchWiz 的三星可以测试,所以这也可能是一个问题。

public void callPhoneNumber(Context context, String number) {
...
//Number will be something like "123-456-TEST"
number = "tel:" + number;
context.startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(number)));
...
}

在原装 Android 上,如果我有一个像“123-456-TEST”这样的号码,它将被正确解释为“123-456-8378”,而对于 HTC Sense,它在拨号程序中最终会显示为“123-456” .如果它们都是数字,两者都可以正常工作。除了编写我自己的电话号码解析器以将号码正确传递给 HTC Intent 之外,还有其他方法吗?提前致谢。

最佳答案

基本上,我只是在将其添加到 Intent 之前添加了自己的解析。我只是使用这个非常草率的正则表达式来完成工作。如果有人有更简单的正则表达式来完成此操作,我将不胜感激。

public void callPhoneNumber(Context context, String number) {
...
number = "tel:" + replaceLettersInNumber(number);
context.startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(number)));
...
}

public static String replaceLettersInNumber(String number) {
return number
.replaceAll("[ABCabc]", "2")
.replaceAll("[DEFdef]", "3")
.replaceAll("[GHIghi]", "4")
.replaceAll("[JKLjkl]", "5")
.replaceAll("[MNOmno]", "6")
.replaceAll("[PQRSpqrs]", "7")
.replaceAll("[TUVtuv]", "8")
.replaceAll("[WXYZwxyz]", "9");
}

关于java - HTC Dialer 从电话号码中删除字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23069672/

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