請問他牌手機的簡訊有辦法轉進iPhone嗎?

咳咳...今天剛把這玩意踹成功了...




分組也正確了,時間也沒錯亂掉





簡單的說,就是想辦法把舊手機的簡訊文字檔內容,
塞到iPhone使用的簡訊資料庫(sms.db)



目前似乎沒有[簡訊to簡訊]的匯入工具,
我是把sms.db抓出來研究資料庫欄位之後,
自己寫程式解決的...


超厲害的大大!!

可以分享給我們這種一般小市民使用嗎
我也想把舊的簡訊合併

但是目前都找不到圖文教學
cutercn wrote:
超厲害的大大!!

可以分享給我們這種一般小市民使用嗎


試了一下之後發現...有問題啦...
目前已經造成後來訊息收發時發生異常...
比如後來收到的簡訊會莫名失蹤無法記錄,
或是簡訊發不出去

我想之所以困難重重的地方是,
iPhone使用了關聯式資料庫來記錄簡訊資料,
任意更動資料庫則可能導致往後的動作不正常...

還在摸索中....

=================================

剛發文完就搞定以上的問題~~已經OK了~

問題出在最後一個動作...需要用91手機助理來同步
這表示...哎鳳得爬牆...



benjenq wrote:
試了一下之後發現...有問題啦......(恕刪)


大大加油
希望你可以寫出簡訊備份程式

別說請你分享
小弟願意跟你買
benjenq wrote:
剛發文完就搞定以上的問題~~已經OK了~
問題出在最後一個動作...需要用91手機助理來同步
這表示...哎鳳得爬牆...(恕刪)

我是原發文者,佩服Benjenq大大的努力鑽研,拍拍手!
希望有一天可以有作品上市,賺大錢!
希望能不要JB也可以辦得到
這樣這套就算9.99我也會買
我的簡訊一直躺在上一隻手機的記憶卡...
原本我吃蘋果[很樂],最後蘋果吃我[惡魔]。
mep wrote:
大大加油
希望你可以寫出簡訊備份程式

別說請你分享
小弟願意跟你買


哎呀呀...說賣錢可真是言重了~~
在下為了將N牌手機的舊簡訊匯入iPhone 3Gs,
其實做了不少事,
撰寫程式只是其中的一個步驟,
若要整個動作把它打包成一套程式來運作的話,
在下我功力不足,沒辦法的啦~


以在下將Nikoa 6680簡訊匯入iPhone 3Gs的動作大致可分成以下四個:

1.使用Nokia PC Suite將6680匯出成*.CSV檔。

2.提取iPhone的SMS簡訊資料庫檔案(sms.db):

(1)有爬過牆的iPhone,可用iFunBox,Winscp,或91手機助手
連線至 /private/var/mobile/Library/SMS 底下取得此檔。

(2)沒爬牆的iPhone,請至最近一次同步備份過的iTune電腦上,
C:\Documents and Settings\[登入帳號]\Application Data\Apple Computer\MobileSync\Backup\[ooxx...一串亂碼,每台iPhone唯一的識別碼]\
底下,找一個叫 3d0d7e5fb2ce288813306e4d4636395e047a3d28.mddata 的檔案,
其實這個檔就是從iPhone內備份出來的簡訊備份檔,內容跟sms.db一模一樣。

3.將*.CSV的資料轉檔匯入sms.db內===>就這個最麻煩,容後概述。

4.將sms.db內的處理好的匯整資料,再同步至iPhone手機上。
因為我的iPhone有爬牆,所以本來以為連線把檔案丟回去就行了,
後來發生異常,不可行。最後則是用91助理的簡訊管理將sms.db同步回去。
(註:不可使用91助手匯入,正確解法為連線把檔案放入之後,再修改權限為mobile 644)

如果iTune可以將處理好的sms.db,改檔名回 3d0d7e5fb2ce288813306e4d4636395e047a3d28.mddata
再回復至iPhone,應該就不用爬牆了。
這個方試我沒試過,看有沒有人願意試試看...

實驗最簡單的方式是,iTunes同步備份一次,然後拿別人的簡訊備份檔案蓋過來,
然後用iTunes回復回去...看最後的簡訊資料是不是別人的

至於第3點,iPhone使用的sms.db資料庫檔案是標準的sqlite 3.0資料庫格式,
麻煩的是iPhone的簡訊資料庫用了幾個關聯資料表來運作
(這也是為何iPhone的SMS簡訊介面可以做到依人分組的功能,
並於第一頁顯示最後一筆簡訊內容)
Nokia 6680匯出的CSV只是很簡單的逐筆記錄檔,結構差異太大,
所以這部分我認為需要撰寫程式,將紀錄檔轉換成iphone訊息資料庫的關聯檔,
得要有SQL程式基礎。
我的作法是先把CSV匯入我熟悉的MS SQL資料庫之後,
用程式處理過這些資料,再用工具從MS SQL 匯入 sms.db 內。

以上,或許有強者能用更簡單的方式來做CSV匯入sms.db的動作,
小弟獻醜,提供給大家參考。


====================================
這兩天測試簡訊收發情況時有個重大發現,
那就是...
請不要用91手機助手來維護通訊錄與簡訊
因為在匯入時發現,這軟體會把號碼中有+886的字串刪除再存入
(未必只有在匯入,而是透過它做收發簡訊之後也會),
而導致門號少一碼,比如+886912345678變成912345678 (少0)
然後呢?只要這個錯誤的門號存在任何一筆簡訊門號或是連絡人資料中,
內建簡訊軟體就會發生錯誤的對應,
爾後就算直接輸入門號0912345678或+886912345678送出,
都會對應到912345678而發生無法傳遞的錯誤,
最後得下載別款簡訊軟體才能正常收發。

所以以上第4步驟得改為直接放入檔案之後,再修改權限為 mobile 644
這樣內建簡訊收發就完全正常了。
benjenq wrote:
如果iTune可以將處理好的sms.db,改檔名回 3d0d7e5fb2ce288813306e4d4636395e047a3d28.mddata
再回復至iPhone,應該就不用爬牆了。
這個方試我沒試過,看有沒有人願意試試看..


不行耶,checksum error,看來 iPhone SDK / SMS API 出現之前一定要 JB 了。

Mac 軟體 PhoneView 有把部分的資料(通話記錄等) checksum 搞定,SMS他也沒搞定。

當然可以用一個爛方法:JB 放 sms.db 進去 => Backup => 重刷 firmware 不 JB => Restore......


我需求是合併多台 iPhone 資料,因為我之前 iTunes Restore 檔案好多份,想把簡訊都合併

用 Firefox SQLite Manager 弄了一個晚上,有成功,一開始也是權限忘記改 644 ,發簡訊 App 會 Crash

我用很笨的方法,把所有 table 的 id column 都 +1000 的,然後拿掉 trigger,table merge 放回 trigger

這樣做的壞處是,一個聯絡人會有好幾個 message_group,沒辦法合併成一個

沒有嘗試 merge message_group 的原因是,之前 iPhone 就有很多收件人不只一人的訊息,懶得弄...

反正裝了 SpotSMS 之後簡訊就可以 Spotlight 全文檢索,多幾個群組無妨。
看來要JB才能辦的到了...
我是有匯出*.CSV
那個檔案就一直躺在我的電腦裡!
關閉廣告
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!