Android CTA认证电话号码7位就能错误匹配问题

电话号码匹配问题

Android默认的号码匹配位数是7位,也就是说从右向左算起,如果两个号码有7位是匹配的,那么就认为是相同的号码,如+86 1234567和01234567是相同的号码;所以判断两个号码是否匹配。
这个会导致过不了认证。

复现

1.测试机新建电话簿联系人jack:12345678(号码长度不足11位, 只保留后8位,前3位去掉);
2. 配合测试机号码为13x12345678(后8位要与上面建立的联系人一样),拨打测试机;
3. 测试机本应识别此号码为未知联系人新号码,但测试过程却被识别为jack,导致测试失败。

修改

在/frameworks/base/telephony/java/android/telephony/PhoneNumberUtils.java里面有个 MIN_MATCH 成员变量,可以用来控制min match, 这里可以改成11。

frameworks$ git diff
diff --git a/base/telephony/java/android/telephony/PhoneNumberUtils.java b/base/telephony/java/android/telephony/PhoneNumberUtils.java
index fababe34..833659de 100755
--- a/base/telephony/java/android/telephony/PhoneNumberUtils.java
+++ b/base/telephony/java/android/telephony/PhoneNumberUtils.java
@@ -1632,7 +1632,7 @@ public class PhoneNumberUtils
     //
     // However, in order to loose match 650-555-1212 and 555-1212, we need to set the min match
     // to 7.
-    static final int MIN_MATCH = 7;
+    static final int MIN_MATCH = 11;

作者:帅得不敢出门 谢绝转载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值