看了linxd的帖子
http://www.weiphone.com/thread-89897-1-1.html, 感觉每个城市加自己的区号还不是最完美的办法。对1.1.4的PhoneNumberTemplates_2文件又研究了一番,最终试验成功。下面的修改方式应该是完美解决问题的方法。
说明如下:
1 区号
<key>AreaCode</key>
<array>
<string>##:########</string>
<string>###:########</string>
<string>###:#######</string>
</array>
这一段我采用了定义区号格式的方式,不用具体填区号。这样所有的区号都适用了
2 国家代码
<key>InternationalCallingCode</key>
<string>86</string>
3 国际呼叫前缀
<key>InternationalDialingPrefix</key>
<array>
<string>+</string>
<string>00</string>
<string>1259300</string>
</array>
增加为三种:+号,00,以及1259300(中移动IP前缀)
4 国内呼叫长途前缀
<key>NationalDialingPrefix</key>
<array>
<string>0</string>
<string>179510</string>
<string>125930</string>
<string>12520</string>
<string>17951</string>
<string>12593</string>
</array>
为了能正确匹配17951/12593和飞信,增加为6行
5 号码格式
<key>SubscriberNumber</key>
<array>
<string>(any)</string>
</array>
请注意,以前的帖子都没有说明这一点,这里的号码格式为去掉国家码、区号后的本地号码格式。由于本地号码可能是8位也可能是7位,这里采用了不限定格式的方式,定义为(any)。这里一定要设置。否则前面的设置可能不起作用。
最终的xml:
<key>cn</key>
<dict>
<key>AreaCode</key>
<array>
<string>##:########</string>
<string>###:########</string>
<string>###:#######</string>
</array>
<key>InternationalCallingCode</key>
<string>86</string>
<key>InternationalDialingPrefix</key>
<array>
<string>+</string>
<string>00</string>
<string>1259300</string>
</array>
<key>NationalDialingPrefix</key>
<array>
<string>0</string>
<string>179510</string>
<string>125930</string>
<string>12520</string>
<string>17951</string>
<string>12593</string>
</array>
<key>SubscriberNumber</key>
<array>
<string>(any)</string>
</array>
</dict>
经过试验(1.1.4)
1 号码簿中姓名Apple存本地号码87654321
不论拨
87654321
0755 87654321
+86 755 87654321
0086 755 87654321
17951 0755 87654321
均能正确匹配
2
1 号码簿中姓名Apple存带区号号码0755 87654321
不论拨
87654321
0755 87654321
+86 755 87654321
0086 755 87654321
17951 0755 87654321
均能正确匹配
至此问题完美解决
另外说明一点,PhoneNumberTemplates_2.plist文件修改后没有必要再转换回二进制。直接上传即可。
PhoneNumberTemplates_2.rar (3.55 KB)
对于1.1.3:
1.1.3和1.1.4下AppSupport的版本是不一样的。
请参见
http://www.weiphone.com/thread-84327-1-3.html的说明,修改/System/Library/Frameworks/AppSupport.framework/Support下的PhoneNumberTemplate.txt文件。
本文中修改的设置,对应1.1.3的PhoneNumberTemplate.txt修改方法为修改文件中关于中国的那一段信息如下:
// China [cn]
cn 86 00;1259300;+ 0;179510;125930;17951;12593;12520
+ + + + - ###########
+ + + + - ##########
+ + + + ## ########
+ + + + ### #######;########
PhoneNumberTemplates.rar (4.15 KB)
[
本帖最后由 wsmp20 于 2008-4-15 02:43 编辑 ]