Click here to Close
 
打印

[原创] (更新)彻底解决1.1.4号码匹配问题的办法

(更新)彻底解决1.1.4号码匹配问题的办法

看了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 编辑 ]

附件

PhoneNumberTemplates_2.rar (3.54 KB)

2008-4-12 22:57, 下载次数: 331

TOP

还没仔细琢磨过,先支持一下!

TOP

使用1.12,留存升级备用

TOP

雖然用不上
還是幫頂

TOP

恩,看上去不错,不知道短信是否也能正常的匹配
如果号码存:17951 0755 87654321,然后拨打87654321或者0755 87654321,是否也正常?

[ 本帖最后由 iphonekk 于 2008-4-12 15:44 编辑 ]

TOP

先关注一下。
iPhone 8G 1.1.3->1.1.4

TOP

好帖要顶!!
但是,这方法貌似没有设置手机号码的格式?

TOP

是不是彻底解决,还有待于大家的进一步检验。不过还是感谢!

TOP

LZ上传个你的PhoneNumberTemplates_2 啊
方便下我们这样的懒人啊。。

TOP

17951 + 手机号码的 不能匹配哦

TOP