作者retsamsu (haha)
看板PDA
标题[心得] Windows Mobile Call Logs (通话记录) 研究心得分享
时间Mon Apr 12 15:42:17 2010
好读网志版~
http://blog.xuite.net/retsamsu/diary/32899274
这一篇分享文的由来,不是因为无聊想研究,而是因为需求而研究的,该换手机啦~~
话说到昨天(4/12),晚上跟Bonnie一起去东区逛街,在有名的兔子兔子餐厅吃饭的时候,
拍了一些有趣的照片。因为Bonnie的传输线坏掉了,所以我们用蓝芽来互传。传完之後
呢,就去逛街。逛到一半,拿出手机来看看,好像当机了。於是就拿对付这台老CHT9100
的方法,戳屁屁,可是这一次却没办法一如往常的重开,而是"当"的一声,我的手机居
然被重置了>///<,失望之余赶紧找回之前的备份,也带着失望(应该是说没心情)回家了
(Bonnie的名言:绝不能相信手机等3C用品)。
因为我每个星期都会拿AddinTimer的备份联络人、简讯、与通话记录功能来备份系统,
话说这时应该是派上用场的时候。联络人、简讯都回覆了,就通话记录找不到哪边还原,
实在有够奇怪,怎麽只能备份不能还原呢?上网找了一下,还真的是没法还原,没这个功
能。这就很像备了一堆没用的东西一样,很笨蛋的感觉。
可是不死心的我找了很多资料,想要恢复通话记录,但都是碰壁。实在是这样的应用太少
了,所以再更深入找了一下,有下面的一些结论:
* Windows Mobile有许多的系统资料库,如行事历、系统排程等资料库,有的可以
看到,有的是隐藏档。
* 应用程式透过Pocket Outlook Object Model (POOM),这个包好API的Framework,
来跟这些资料库沟通。
* 所以不管是新增行事历、修改电话簿等等作业就可以透过POOM来执行。
* 有许多已经完整的POOM实作可以使用,如OpenNETCF、Mobile In The Hand、.Net
CF等,都可以在手机上来存取资料。
* 也有许多应用程式已经可以存取,如SKTools、CeDatabase Manager、Pocket
dbExplorer等。
* 不过没有一个程式能大量汇入使用者定义的资料(From AddinTimer的备份)。
* 对於手机的程式要写起来应该很麻烦。
中间Try and Error的过程就不说了,直接跟大家分享最後的方法:SKTools+写程式产生
Import档。
SKTools是个很方便的Windows Mobile控管程式,会用到的是他管理资料库的功能。
点进去以後就可以看到系统资料库。今天我们要存取的是clogs.db(Call Logs资料库)。
可以看到一些重要的资料:属於EDB格式,存在於pim.vol。
pim.vol存在系统的根目录下,里面放着通讯录、行程、约会等资料,就像是一个磁区
(Volume)一样,所以对应如果要改其他的内容的话,就是去存取在pim.vol下的其他资料
库。
可以汇入也能汇出,都是xml档。既然是xml档,就可以来研究研究是不是可以用程式还是
其他方法来加工一下,再汇入进去。xml档的格式大概是这样:
上面那沱东西,不用管他,反正保留在那就好,重要是下面的部份:
可以看出大概的资料结构,所幸有这个跟这个的帮忙,一方面是知道栏位的格式与内容,
另一方面是如果是参数的话是什麽东西,大概是这样:
* record oid:没关系,乱打就好,汇入会重编。
* field 1:固定是1。
* field 2:开始时间,这个时间是SortableDateTimePattern加个Z(与
UniversalSortableDateTimePattern类似,真是奇怪的格式),位数都不要补零。
* field 3:结束时间,格式跟上面一样。
* field 4:来电的格式,有下面几种,分别是有没有在电话簿里的来电与打的方式
有代码。
* field 6:电话号码。
* field 7:联络人名称。
* field 10:是什麽样的电话(行动电话、家用电话还是什麽的)。
* field 9:固定是0。
然後看看AddinTimer的通话记录备份里有什麽栏位。
* StartTime:开始时间,就是field 1。
* Name:如果是在电话簿里有名字的话,会记录名称,field 7。
* Number:电话号码,field 6。
* CallType:经过比对的结果呢(就是打给某人的比较长,就大概知道Type是什麽意思
了(笑)),再根据Name就可决定field 4的内容,大概是这样:
o a是未接来电。
o b是已接来电。
o c是播出电话。
* Duration:持续时间,与StartTime配合可以产生field 3。
* Note:没东西。
基本上都能配合着作,除了field 10不知道要填什麽(不填也没关系),field 3 =
field 2 + Duration以外,就是单纯的资料输出了。
做完以後,丢到手机上,Import进去,就可以看到结果啦,完成了还原的工作,下次要
记得用其他东西备份啦~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.209.21
※ 编辑: retsamsu 来自: 140.113.209.21 (04/12 15:42)
1F:推 gpc:do a push 04/12 23:19