【问题标题】:Phone numbers not autolink on a few devices一些设备上的电话号码不会自动链接
【发布时间】:2020-11-02 11:26:58
【问题描述】:

我正在尝试将电话号码作为 Android 上的链接,但由于某种原因,其中一位测试人员发现电话号码不是两个不同设备上的链接而另一位测试人员和开发人员没有看到的问题问题。会不会是某种禁用链接的设备配置?这是我的代码:

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

在一个人的三星 S9 Plus 和 S20(均为 Android 10)上的结果:

在两台不同的人设备上测试结果,一台在三星 S10 上测试,另一台在 Note 9(均为 Android 10)上测试:

我还尝试了三星 S9 Plus 和 S20 模拟器,并且成功了。这让我觉得这与那些特定的设备有关,也许是某些设置?

【问题讨论】:

    标签: c# android xamarin


    【解决方案1】:

    如果我使用没有 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

    【讨论】:

    • 谢谢!这很有帮助
    • 我看到了那个帖子,但由于某种原因我没有看到你刚刚发送的这部分,我以为主题是关于识别不同长度的电话号码。再次感谢您,这对您有很大帮助 =)
    猜你喜欢
    • 1970-01-01
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多