电话号码链接在Android 9上不起作用

时间:2019-05-22 09:19:16

标签: android kotlin android-9.0-pie

我想让我的电话号码可以点击,现在我当前的解决方案是

final SpannableString msg = "Contact us: test@t.t or call: 5008 878 6578"
Linkify.addLinks(msg, Linkify.EMAIL_ADDRESSES | Linkify.PHONE_NUMBERS);
textView.setText(msg);

这对于Android 8.1及更低版本适用,但对Android 9则无效(可单击电子邮件,因此问题仅在于数字电话)

我已经尝试使用XML布局或使用

textView.setAutoLinkMask(Linkify.PHONE_NUMBERS)

与输出相同,电话号码不可点击。

如何在Android 9上修复它?

1 个答案:

答案 0 :(得分:2)

根据documentation,掩码Linkify.EMAIL_ADDRESSES | Linkify.PHONE_NUMBERS似乎是正确的-但我无法将类似的5008 878 6578识别为有效的电话号码-如果我确实无法拨打该号码,会单击它...因此sPhoneNumberMatchFilter很可能有错误。 用Spannable手动构建所需的tel://50088786578可能是一个简单的解决方案;调整sPhoneNumberMatchFilter可能是另一种选择... .addLinks()允许使用参数matchFilter

确定要在Android 9.0上运行相同的Locale吗?应该是要匹配的正则表达式模式的来源,因为这些格式会计入本地化。