T628通讯簿中也许会造成麻烦的bug及其分析

Bug1 :
当然 , 这种后 8 个 num 相同 , 前面的 num 不相同的情况的确很少见的 , 但还是会偶尔出现 。
而通过后 8 位比较确定联系人的方法 , 会出现这样的好结果:
譬如 , 我保存的联系人的手机号有的是存成8613********* , 有的是存成 13********* , 那无所谓(来电时手机收到的号码是 13********* ) , 因为手机只比较后八位 , 两种存贮方法都能在对方来电时显示其姓名;
又如 , 我存了北京地区的固话 , 无论存成 010******** 或者 8610******** 或者不加区号 , 该固话来电时(手机收到的会是 010******** 这串号码)都能进行识别 。
但同时也会带来这样的不便:
譬如 , 我是在一个固话号码只有 7 位的地区生活的 , 那么我拨打当地的电话时就不需要加区号 , 直接打那 7 位的号码就行了(在某些地区尚需拨打区号);我要存当地的某个号码自然也只存个 7 位的号就行了;但这样一来 , 当这个号码打我的手机时 , 由于手机收到的是一个连区号的来电 , 手机在和通讯簿中的联系人号码比较 , 其他的当然都不合适了 , 而当比较到本来属于这个联系人的号码时 , 前面 7 次比较返回的都是 1 , 但到了第 8 次 , 一边是数字 , 一边是 nc (空);当然就返回 0 了 , 于是手机会确认这个来电是陌生来电 , 显示的是一串连区号的数字 , 而不是联系人的名字!
更有甚者 , 如果你做了接听清单 , 那么这个固话也会识别成不在接听清单中而被拒接掉 L。所以固话号码是 7 位的地区 , 在 628 上存储固话时 , 就必须加上区号了 。
Bug2 :
我们存储联系人 , 譬如一对夫妇 , 那么“家中”号码的一项就会是同一个号码了;譬如 , 你先输入 husband 的手机号 , 再输入 husband 家中的号码;然后又输入 wife 的手机号和家中号码(当然 , 在大多数情况下 , 你可能不输入的) , 那么默认情况下 , 这四个号码是按输入先后顺序在手机中存放的 , 为方便说明 , 不妨设为存储在 1 , 2 , 3 , 4 这四个位置 。
628 不能做拒接清单 , 但可以做接听清单;那么我们如果要把这对夫妇的家中号码放在接听清单中 , 我们也就很自然的只放其中一个;譬如 , 你随便选了 wife 的家中电话存了进去 。
那么如果这对夫妇用家中电话打你手机了 , 你的手机会显示 husband 的名字 , 然后拒接!而不是显示 wife 的名字然后响起那悠扬的 32 和弦 。
但如果你在接听清单中放的是 husband 的家中电话 , 那么就会显示 husband 的名字 , 然后响起来电的提示音 。
经过尝试 , 如果不同联系人用了同一个号码 , 手机显示的是在手机存贮位置中靠前那个联系人的姓名 。(而与在查找联系人时联系人的显示顺序无关 。)
这样 , 我们可以知道 628 对接听清单的操作过程了:因为接听清单都是对手机中的联系人进行操作的;接听清单中标记的是联系人在话机中的位置 , 说白了 , 接听清单其实就是一个位置列表 。所以当你选了选择性接听模式时 , 有来电进入 , 手机会首先按照话机中联系人存贮位置的先后顺序 , 分别和来电号码的后 8 位进行对照 , 只要找到后 8 位完全相同的 , 就确定是该联系人 , 然后再将该联系人的位置与接听清单中的位置列表对照 , 如果发现在列表中 , 就显示该来电 , 反之则拒接 。
譬如:我们把 wife 家中电话放在接听清单 , 那么接听清单中记录的是“ 4 ”这个位置;然后当这对夫妇家里的电话打入时 , 手机沿着联系人在话机中的存贮顺序 , 对照后 8 位 , 发现和 husband 家中电话吻合 , 确定是 husband 家打来的电话(而不是 wife ) , 然后把“ 2 ”位置与接听清单对照 , 发现接听清单中没有“ 2 ” , 于是 , 拒接 。

推荐阅读