Windows Mobile Call Logs (通話記錄) 研究心得分享

2010-04-12

這一篇分享文的由來,不是因為無聊想研究,而是因為需求而研究的,該換手機啦~~

話說到昨天(4/12),晚上跟Bonnie一起去東區逛街,在有名的兔子兔子餐廳吃飯的時候,拍了一些有趣的照片。因為Bonnie的傳輸線壞掉了,所以我們用藍芽來互傳。傳完之後呢,就去逛街。逛到一半,拿出手機來看看,好像當機了。於是就拿對付這台老CHT9100的方法,戳屁屁,可是這一次卻沒辦法一如往常的重開,而是”噹”的一聲,我的手機居然被重置了>///<,失望之餘趕緊找回之前的備份,也帶著失望(應該是說沒心情)回家了(Bonnie的名言:絕不能相信手機等3C用品)。

因為我每個星期都會拿AddinTimer的備份聯絡人、簡訊、與通話記錄功能來備份系統,話說這時應該是派上用場的時候。聯絡人、簡訊都回復了,就通話記錄找不到哪邊還原,實在有夠奇怪,怎麼只能備份不能還原呢?上網找了一下,還真的是沒法還原,沒這個功能。這就很像備了一堆沒用的東西一樣,很笨蛋的感覺。

可是不死心的我找了很多資料,想要恢復通話記錄,但都是碰壁。實在是這樣的應用太少了,所以再更深入找了一下,有下面的一些結論:

中間Try and Error的過程就不說了,直接跟大家分享最後的方法:SKTools+寫程式產生Import檔。

SKTools是個很方便的Windows Mobile控管程式,會用到的是他管理資料庫的功能。

點進去以後就可以看到系統資料庫。今天我們要存取的是clog.db(Call Logs資料庫)。

可以看到一些重要的資料:屬於EDB格式,存在於pim.vol。

pim.vol存在系統的根目錄下,裡面放著通訊錄、行程、約會等資料,就像是一個磁區(Volume)一樣,所以對應如果要改其他的內容的話,就是去存取在pim.vol下的其他資料庫。

可以匯入也能匯出,都是xml檔。既然是xml檔,就可以來研究研究是不是可以用程式還是其他方法來加工一下,再匯入進去。xml檔的格式大概是這樣:

上面那沱東西,不用管他,反正保留在那就好,重要是下面的部份:

可以看出大概的資料結構,所幸有這個這個的幫忙,一方面是知道欄位的格式與內容,另一方面是如果是參數的話是什麼東西,大概是這樣:

然後看看AddinTimer的通話記錄備份裡有什麼欄位。

基本上都能配合著作,除了field 10不知道要填什麼(不填也沒關係),field 3 = field 2 + Duration以外,就是單純的資料輸出了。

做完以後,丟到手機上,Import進去,就可以看到結果啦,完成了還原的工作,下次要記得用其他東西備份啦~


Blog comments powered by Disqus