繁体   English   中英

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

[英]HTC Dialer removes letters from phone number

我在使用HTC Sense的电话拨号器删除从传递给它的电话号码中的所有字母时遇到了一个问题。 我正在使用此代码来启动Phone 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中。 我只是用这个非常草率的正则表达式来完成工作。 如果有人使用更简单的正则表达式来完成此操作,我将不胜感激。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM