微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

电话号码无法在某些设备上自动链接

如何解决电话号码无法在某些设备上自动链接

我正在尝试将电话号码链接为Android上的链接,但是出于某种原因,其中一名测试人员看到了一个问题,即电话号码不是两个不同设备上的链接,而另一个测试人员和开发人员却看不到问题。可能是某种禁用链接的设备配置吗?这是我的代码

textView.AutoLinkMask = Android.Text.Util.MatchOptions.PhoneNumbers;

一个人的Samsung S9 Plus和S20(均为Android 10)的结果:

No Link

在两种不同的人机上的结果,一种在三星S10上进行了测试,另一种在Note 9(均为Android 10)上进行了测试:

Phone Link

我还尝试了Samsung S9 Plus和S20 模拟器,并且效果很好。这使我认为它与那些特定设备有关,也许与某些设置有关?

解决方法

如果我使用没有SIM卡的设备,则会遇到相同的问题,因此请确保您的手机已插入SIM卡。

 private static void gatherTelLinks(ArrayList<LinkSpec> links,Spannable s,@Nullable Context context) {
    PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
    final TelephonyManager tm = (context == null)
            ? TelephonyManager.getDefault()
            : TelephonyManager.from(context);
    Iterable<PhoneNumberMatch> matches = phoneUtil.findNumbers(s.toString(),tm.getSimCountryIso().toUpperCase(Locale.US),Leniency.POSSIBLE,Long.MAX_VALUE);
    for (PhoneNumberMatch match : matches) {
        LinkSpec spec = new LinkSpec();
        spec.url = "tel:" + PhoneNumberUtils.normalizeNumber(match.rawString());
        spec.start = match.start();
        spec.end = match.end();
        links.add(spec);
    }
}

phoneUtil.findNumbers函数在getSimCountryIso()中传递,如果设备没有SIM卡,则此方法可能有问题。

您可以查看的同一线程:

android:autoLink for phone numbers doesn't always work

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。