Click here to Close
 
打印

[原创] 【第五版 几近完美】来电/短信匹配与号码格式 For FW2.0

本主题由 Nicholas 于 2008-9-23 15:21 设置高亮

【第五版 几近完美】来电/短信匹配与号码格式 For FW2.0

NEWS:
本补丁包已经被iPhoneCake收录在Cydia源中
Cydia中搜索iPhoneCake就可以找到


目前的版本已经很完善。
解决了绝大部分问题~
并且根据大家要求对电话显示格式做了处理。

显示格式实例:
138 0013 8000
010-88552222
12593 159 1122 3344
800-820-8820

如果不喜欢这样的格式。
可以自己修改文件
UIPhoneFormats.plist或不替换此文件。

已经解决的问题有:

12520开头的号码〔飞信匹配〕
17951开头的任何号码〔移动IP匹配〕
12593开头的任何号码〔移动IP匹配〕
10193开头的任何号码〔联通IP匹配〕

+86开头的任何号码〔用于电话/短信 匹配〕
0086开头的任何号码〔用于电话/短信 匹配〕

86开头的手机号码〔用于部分地区短信
匹配 不涉及呼出 不做格式定义


使用方法:
请下载附件使用WinSCP等工具替换如下文件:
或添加iPhoneCake Cydia源安装此补丁。

〔1〕号码显示格式规则的文件:UIPhoneFormats.plist
位置:System/Library/Frameworks/UIKit.framework/PhoneFormats

〔2〕来电及短信号码匹配的文件:PhoneNumberTemplates.plist
位置:/System/Library/PrivateFrameworks/AppSupport.framework

注意事项:
1-注意备份原始文件!
2-调整地区格式至【中华人民共和国】
3-刷新固件之后先设定地区格式-装补丁-再同步电话簿



关于「不加区号的固定电话」匹配问题:
事实上如果你习惯于保存号码的时候添加区号
那这一点对于你来说也不是问题了。
〔可参考komeloo的方式自己添加地区区号〕


感谢55楼Komeloo的分享
引用:
升到2.0以后主要是本地固话来电匹配有问题, 比如A的电话是12345678,当A打电话给我时,iphone显示02112345678 (我在上海), 而不是A.
可以在AppSupport.framework中CN段的最前面加上
<array>
<string>86</string>
<string>00</string>
<string>021</string>
<integer>0</integer>
<integer>8</integer>
</array>



然后重启就可以匹配了,之后A打电话过来iphone就会显示A了.
<string>021</string> 可以改成当地的区号

<integer>8</integer> 改成当地固话的位数, 7位就改成7.


[ 本帖最后由 bear 于 2008-7-27 10:24 编辑 ]

附件

2.0固件电话格式及号码匹配 0.5.rar (4.6 KB)

2008-7-27 10:24, 下载次数: 5262

本帖最近评分记录
  • thtyy 人气 +1 不符合本版规发帖囧 2008-8-31 08:24
  • 筷子 人气 +20 严禁广告/SPAM O_O 2008-7-29 22:08
  • 筷子 经验 +3 严禁广告/SPAM O_O 2008-7-29 22:08
  • sonyc 人气 +1 助人为乐^_^ 2008-7-27 22:26
  • 法雨 人气 +5 支持! 2008-7-27 17:17
  • 5576249 人气 +3 感谢分享 不错 加油 2008-7-27 11:17
  • CDAX 人气 +3 精品文章^_^ 2008-7-27 10:27
  • kash 人气 +5 好东西,先收藏了。 2008-7-24 15:02
  • seelecpt 人气 +3 相当认真地做事情.... 2008-7-24 13:00
  • macres 人气 +5 谢谢!! 2008-7-24 10:24
  • zutin 人气 +1 支持!! 2008-7-24 10:10
  • sll0808 人气 +3 没啥说的~就是好呀~ 2008-7-23 22:58
  • netrogue 人气 +1 支持楼主的辛勤劳动.顶你 2008-7-23 14:33
  • eqzero 人气 +5 感谢分享^_^ 2008-7-23 12:35
打造最强字体贴 力争突破五十种

TOP

12:00
事实上我这两天都在研究这个问题。
在iPhone2.0中 此规则涉及到两个文件:

〔1〕号码显示格式规则的文件:UIPhoneFormats.plist
位置:System/Library/Frameworks/UIKit.framework/PhoneFormats

修改这个文件的目的是?先举几个例子
02088776655显示成:020-88776655
8008101234显示成:800-810-1234
13800138000显示成:138 0013 8000
+8615988009922显示成+86 159 8800 9922

[attach]122271[/attach]

目前看来我们一样可以沿用1.1.4的模式对其进行修改 格式是一样的
可以用附件中附带的这个plist档替换原机文件
用记事本打开这个文件按照自己的习惯修改。
当然使之生效需要重启SpringBoard
不过现在有了iReboot(在Cydia中下载) 就变得没那么麻烦了

〔2〕来电及短信号码规则的文件是:PhoneNumberTemplates.plist
位置:/System/Library/PrivateFrameworks/AppSupport.framework

这就是目前问题的所在…
这个文件具体规则我之后再述
目前我已经可以解决飞信12520等特殊开头号码的匹配问题
但是在+86 86等号码上 以上两个文件似乎是冲突的
也就是说按照原版的UIPhoneFormats.plist的定义
+86/0086和后面的号码是有空格的
如果直接在PhoneNumberTemplates.plist定义+86和0086等是无法生效的



转载一下 xesique朋友对第二个文件的说明:
http://www.weiphone.com/viewthread.php?tid=133176

有一个2.0电话号码匹配的想法,希望高手进来看看
关于电话号码的显示格式就不多说了,和1.1.4下一样.
现在我遇到的问题是,电话薄里存的号码可能没办法匹配打进来的电话.
例如,我储存02812345678(带区号),则使用键盘拨号时直接输12345678,iPhone不认得这个号码是谁.如果我直接储存12345678,则接听的电话02812345678无法匹配人名.

我现在暂时找的办法如下
2.0默认状态下
/System/Library/PrivateFrameworks/AppSupport.framework/PhoneNumberTemplates.plist应该是来匹配电话

打开找到cn里面是存储的是3组信息如下

86 00 0 0 11
86 00 0 2 8
86 00 0 3 7

每组信息的五个部分分别为国家代码,国际长途电话前缀,国内长途电话前缀,区号长度,电话号码长度
可以理解为第一组匹配手机号,第二组匹配区号3位,电话号码8位的固定电话号码,第三组匹配区号4位的,电话号码7位的固定电话号码.
我把这些改成

86 00 0 2 8
86 00 0 3 7
86 00 0 0 11
86 00 0 3 8

希望能匹配所有电话号码,但是我失败了.这样仍然无法匹配.

最后我留下了
86 00 0 2 8
86 00 0 0 11
这两行,现在可以匹配文章开头所述的两种情况,但是不能匹配区号是4位的部分

各位有没有其他什么想法能够使之完美匹配?

[ 本帖最后由 bear 于 2008-7-23 15:50 编辑 ]
本帖最近评分记录
  • kash 人气 +5 再顶。 2008-7-24 15:02
打造最强字体贴 力争突破五十种

TOP

太好了~~谢谢

TOP

这里强噢
weihphone.com
   ◎1987-2o0⒏版權所哊◎

TOP

2.0的软件缺得太多,等大侠们搞的差不多了,按再升上

TOP

辛苦,期待in.....................

TOP

期待完美的...

TOP

是和其他国家的格式冲突,我想大概是这样,除了中国外,把其他国家队号码格式都删除。应该不会出现这样的问题。。

TOP

引用:
原帖由 阿哉 于 2008-7-23 12:02 发表
是和其他国家的格式冲突,我想大概是这样,除了中国外,把其他国家队号码格式都删除。应该不会出现这样的问题。。
我之前就试过了 是不可以的

只要是0开头的号码就无法匹配

也不接受「+号」
打造最强字体贴 力争突破五十种

TOP

谢谢楼主!

有重启SpringBoard的工具(Cydia->Utilities->Respring),详见:

http://www.weiphone.com/viewthre ... e%3D1&frombbs=1

TOP