经过多方面测试,终于确信诺基亚部分型号手机,如7260、3230、6670在姓名识别上有bug。
先看看是我用7260(s40,v05.50)为例做的测试。(看小结与总结也行了,表述不明白之处再参考一下测试方法。)
手机里有一来自甲13012000000的短信。通信录里有两个人:甲和乙。
测试:
1:设甲的号码为13012000000,短信的发件人正常显示为甲。
小结:手机正常。
2:依次设甲的号码为:
13112000000、
13002000000、
13019000000(短信无法显示发件人姓名,以下用*表示)、
13012000000(*)、
2000000、
3000000(*)、
13012000000p123、
2000000p123。
小结:手机只通过号码的后7位来识别发件人。号码中的符号如暂停号p、#、*等之后的号码似乎无影响,后面再进行相关测试。
3:
(1)设甲13012000000,乙13112000000。发件人显示:甲
(2)设甲13112000000,乙13012000000。发件人姓名显示:乙。
(3)设甲和乙的号码都是13012000000。发件人姓名无法显示。
(4)设甲为13012000000,乙为2000000。发件人姓名显示:甲
小结:当通信录里有不止一个人的号码的后7位相同时,手机会增加搜索位数,选取最佳匹配的姓名。
4、设甲13012000000,依次设乙
13012000000p(发件人姓名显示为乙)、
2000000p(甲)、
13012000000+(乙)、
13012000000w(乙)、
13012000000*(甲)、
13012000000#(甲)。
小结:这是这个bug的一个优点,比如我要设自动查话费10086p1p1p1为单键拨号就要把号码存入通信录,单就这一个号码就可以识别来自10086的短信了,不用再存多几个号码。*、#等同于数字。
5、(1)设甲0013012000000,乙2213012000000。发件人姓名无法显示。
(2)设甲00013012000000,乙0013012000000。显示甲。
小结:如果通信录中有几个人的号码与短信号码的匹配位数相同,则谁长显谁。
6、最后对短于7位的号码测试一下。有一条来自10086的短信。通信录依次设“客服”为10086(正常)、110086、0086、10086p1(正常)、10086#。
小结:对短于7位的号码,识别正常无bug。
注:通话记录里的姓名因为不会随通信录更新,所以来电的只做了一点。实际上和短信的是一样的。
完整的短信号码应该是+8613012000000,以上测试都把国家代码+86考虑进去了,不过没写出来。
诺基亚6670(s60 v6.0525.0)、3230(s60 v5.0604.0)上的测试结果与7260的相同,摩托罗拉e398无此bug。(诺基亚的我只找到这几台,其它牌子的只测过e398。)
总结:无论是信息还是来电,只要其数字号码(即数字、*、#)的后7位数字与通信录中的某人某个号码的后7位数字相同,发件人姓名就是此人了。如果有更多的匹配姓名,则
1)匹配位数不同时,显示匹配位数最多的,即最佳的;2)匹配位数相同,则显示号码最长的姓名,那些懒得删+86的号码有福了,偏偏这些多半都不是很熟的。
至此,我们可以看到这几款手机在来电、短信姓名识别上的一个可大可小的bug。导致的结果可能是甲被当成乙、陌生人被当成熟人、莫名其妙地订了收费业务、短信发错人、电话打错人(后两种情况就是这篇文理不通的东东的导火线。我存了个错的号码,但手机却神奇的识别出来电、短信是某人的,直到我主动发信息过去他却收不到才发现号码第3位搞错了)……再具体点,其后果就是莫名其妙的误会、秘密隐私泄漏、账号甚至密码泄漏……不过好的话,倒可以说是认识多个有缘人……
自然,我的测试并不很严密,不少测试步骤是最后加上去的。对于诺基亚的其它型号手机,相信有此bug还有不少。
希望诺基亚能早日解决,虽然碰到这种问题的不多吧。