目前,我正在开发一个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/