1

我正在开发一个拨号器应用程序,我一直在我的摩托罗拉设备和我通过 SDK 管理器下载的仿真器图像上进行测试。

用户要么输入号码,要么从最近的通话或联系人中选择号码。然后我像这样启动呼叫(逗号在那里,因此在发送拨号音之前会有延迟):

String url = "tel:" + preDial + " ,,, " + postDial;
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(url));
startActivity(intent);

在我的手机和模拟器上,手机应用程序会显示preDial其联系人姓名,并将其正常插入最近的通话记录中。然而,当我在朋友的 Samsung Charge 上对其进行测试时,它显示了 url 的内容(当然减去了“tel:”)。例如,如果preDial = "15555555555"电话postDial = "1111"应用程序将显示 15555555555,,,1111 并且由于联系人没有附加 ,,,1111 的号码,因此不会显示相应的联系人姓名。这也搞砸了通话记录,因为这个没有联系的尴尬号码存储在那里。我假设这是三星如何实现他们的手机的一个功能,我希望有办法解决它。

我可以通过从通话记录中删除来修复LIKE preDial通话记录,但电话应用程序中号码显示方式的问题仍然存在。有谁知道这是否是比三星更普遍的问题,是否有任何解决方法?

4

2 回答 2

1

我想说这就是摩托罗拉实现事物的方式,因为我从来没有想过在两者之间使用逗号。你只是尝试不使用逗号吗?String url = "tel:" + preDial + postDial;

编辑:检查@RetoMeier 的解释/建议

希望它有所帮助,并且真的希望您的 UI 比我评论中的 UI 更好.. ;)

干杯

于 2012-05-22T10:39:05.073 回答
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);
于 2012-05-22T10:42:43.007 回答