Phone 数字链接在 Android 9 上不起作用

Phone numbers links not working on Android 9

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

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(电子邮件是可点击的,因此问题仅出现在数字 phone)

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

textView.setAutoLinkMask(Linkify.PHONE_NUMBERS)

和输出一样,phone数字不可点击。

如何在 Android 9 上修复它?

掩码 Linkify.EMAIL_ADDRESSES | Linkify.PHONE_NUMBERS 似乎是正确的,根据 documentation - 但我不会将类似 5008 878 6578 的东西识别为有效的 phone 数字 - 我绝对可以不要拨它,如果我会点击它...所以很可能 sPhoneNumberMatchFilter 可能有问题。 使用 tel://50088786578 手动构建所需的 Spannable 可能是一个简单的解决方案;调整 sPhoneNumberMatchFilter 可能是另一种选择...... .addLinks() 也允许这样做,参数 matchFilter.

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