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

好讀網誌版~

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、.NetCF等,都可以在手機上來存取資料。
* 也有許多應用程式已經可以存取,如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進去,就可以看到結果啦,完成了還原的工作,下次要記得用其他東西備份啦~
2010-04-12 15:44 發佈
現在才知道AddinTimer無法還原通話記錄,
感謝分享!
ha1015 wrote:
AddinTimer的備份聯絡人、簡訊、與通話記錄功能來備份系統,話說這時應該是派上用場的時候。聯絡人、簡訊都回覆了,就通話記錄...(恕刪)
這樣的文章在這的回應很冷清,給你加油打氣,5分是需要的。
如果您是PPC的用戶,PimBackup可以滿足您的需求,聯絡人,通話紀錄,簡訊,快速撥號...都可以一指搞定。
版上還有中文版的
上主是我的牧者,我實在一無所缺
這篇是在用addintimer的方法備份下,無法直接還原的方式~
PimBackup, 真是一個簡單又強大又免費的備份軟體。

從WindowMobile 5 一直用到現在
你真有心研究耶,感謝你的分享!

不過簡訊和通話記錄我都是不見就算了…
通訊錄會從outlook再同步回來。
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?