我想让我的电话号码可以点击,现在我当前的解决方案是
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上修复它?
答案 0 :(得分:2)
根据documentation,掩码Linkify.EMAIL_ADDRESSES | Linkify.PHONE_NUMBERS
似乎是正确的-但我无法将类似的5008 878 6578
识别为有效的电话号码-如果我确实无法拨打该号码,会单击它...因此sPhoneNumberMatchFilter
很可能有错误。
用Spannable
手动构建所需的tel://50088786578
可能是一个简单的解决方案;调整sPhoneNumberMatchFilter
可能是另一种选择... .addLinks()允许使用参数matchFilter
。
确定要在Android 9.0上运行相同的Locale
吗?应该是要匹配的正则表达式模式的来源,因为这些格式会计入本地化。