如何在消息(字符串)中检测电话号码,突出显示它们&允许用户在Android中调用这些号码?

时间:2017-04-25 07:55:07

标签: java android pattern-matching linkify

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

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

到目前为止我尝试了什么:

  1. 使用Linkify突出显示数字&它允许用户重定向到预先加载号码的电话拨号器屏幕。我的要求是直接打电话而不导航到拨号器。我知道不建议直接打电话,但这个应用程序必须具有此功能。
  2. 2.Pattern matching:

        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:“请拨打此号码致电保罗:900-445-1549以支持”。

    所以,基本上我想从消息中检测上面两个数字/一个数字,突出显示那些&能够直接打电话。

1 个答案:

答案 0 :(得分:0)

找到解决方案

  1. 通过编程

    Linkify.addLinks(yourTextView, Linkify.PHONE_NUMBERS);
    
  2. 在Xml文件中

    android:autoLink="phone"