我正在开发一个拨号应用程序,我一直在我的摩托罗拉设备上测试以及我通过SDK管理器下载的模拟器图像。
用户键入数字,或从最近的通话或联系人中选择。然后我就这样拨打电话(逗号就在那里,以便在发送拨号音之前有延迟):
String url = "tel:" + preDial + " ,,, " + postDial;
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(url));
startActivity(intent);
在我的手机和模拟器上,手机应用程序会显示preDial
及其联系人姓名,并将其正常插入最近的通话记录中。然而,当我在朋友的三星Charge上测试它时,它显示了url的内容(当然减去“tel:”)。例如,如果preDial = "15555555555"
和postDial = "1111"
电话应用程序将显示15555555555 ,,, 1111,并且由于联系人没有附加的号码,将显示没有相应的联系人姓名,附加了1111。这也搞砸了通话记录,因为这个没有联系的笨拙号码存储在那里。我假设这是三星如何实现他们的手机的功能,我希望有一种解决方法。
我可以通过从通话记录中删除LIKE preDial
来修复通话记录,但数字在手机应用中的显示方式仍然存在问题。有谁知道这是一个比三星更广泛的问题,如果有任何方法吗?
答案 0 :(得分:1)
我会说这是摩托罗拉如何实现的,因为我从来没有想过在两者之间使用逗号。你只是试着没有逗号吗? String url = "tel:" + preDial + postDial;
修改:检查此explanation/advice by @RetoMeier ..
希望它有所帮助,并且真的希望你的用户界面比我的评论更好..;)
干杯
答案 1 :(得分:0)
尝试这样的事情,
String tel = preDial + " ,,, " + postDial;
// it will remove all things except number's
tel = tel.replaceAll("\\D", "");
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:" + tel));
startActivity(callIntent);