目前,我正在开发一个Android应用程序,该应用程序从服务器端接收消息(作为推送通知)并将这些消息存储在database中。

这些消息显示在列表中,如图所示,每条消息都需要具有允许用户拨打消息中显示的电话号码的功能。

到目前为止,我已经尝试过:


使用Linkify突出显示号码,并允许用户重定向到预装有号码的电话拨号程序屏幕。我的要求是直接拨打电话,而无需导航到Dialer。我知道不建议您直接拨打电话,但此应用必须具有此功能。


2.模式匹配:

    String regex = "^\\+(?:[0-9] ?){6,14}[0-9]$"; // Also tried [^-?0-9]+
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(mText);`


我可能在模式匹配方面犯了错误,因为它没有显示消息中的任何数字。

样本消息1:“请致电Paul拨打以下号码:900-445-1549或其他号码:797-2436-2455以支持”。

样例消息2:“请致电Paul以获得此号码:900-445-1549以支持”。

因此,基本上我想从消息中检测出上述两个数字/一个数字,突出显示这些并能够在点击时直接拨打电话。

最佳答案

寻找解决方案


以编程方式

Linkify.addLinks(yourTextView, Linkify.PHONE_NUMBERS);

在Xml文件中

android:autoLink="phone"

关于java - 如何在消息(字符串)中检测电话号码,突出显示电话号码并允许用户在Android中调用这些电话号码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43604780/

10-16 06:49