Java HTC拨号程序从电话号码中删除字母
我有一个问题,特别是HTC Sense的电话拨号程序删除了传递给它的电话号码中的任何字母。我用这个代码来启动手机,它在Android股票上运行。我没有带TouchWiz的三星手机可以测试,所以这可能也是一个问题Java HTC拨号程序从电话号码中删除字母,java,android,android-intent,android-dialer,Java,Android,Android Intent,Android Dialer,我有一个问题,特别是HTC Sense的电话拨号程序删除了传递给它的电话号码中的任何字母。我用这个代码来启动手机,它在Android股票上运行。我没有带TouchWiz的三星手机可以测试,所以这可能也是一个问题 public void callPhoneNumber(Context context, String number) { ... //Number will be something like "123-456-TEST" number = "tel:" + n
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,还有其他方法吗?提前感谢。基本上,我只是在添加到意图之前添加了自己的解析。我只是用这个非常松散的正则表达式来完成工作。如果有人有一个更简单的正则表达式来实现这一点,我将不胜感激
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");
}
为什么不使用内置的实用程序库?