今天把 google messenger 装上了,但是老的短信记录并没有导入,有什么办法导入老的短信记录吗?

2016-07-29 09:33:56 +08:00
 gamexg

如题,老短信 messenger 里面没有,新短信系统原生短信 app 里面没有。

感觉以后如果放弃了 messenger 也会出现麻烦,短信难以迁移出来了。

10323 次点击
所在节点    Android
7 条回复
gamexg
2016-07-29 09:41:12 +08:00
不知道什么安全限制, messenger 无法发送短信。
已经确认 messenger 是默认短信应用,并且安全软件没有拦截 messenger 的权限。

系统是 android 5.1
ivanchou
2016-07-29 09:48:36 +08:00
为什么要迁移, Android 中所有的短信 app 都是读系统的短信数据库的啊,你是不是把短信存储给清空了。
echopan
2016-07-29 09:57:34 +08:00
注册谷歌账号备份一下吧,看看设置里面有没有把谷歌短信设为默认?
l8mEQ331
2016-07-29 10:11:58 +08:00
@ivanchou 说的对,我也有几次在不同短信 app 之间切换,数据都是一样的。其实我只是想说用 messenger 还不如用 hangouts 呢。
viko16
2016-07-29 10:19:57 +08:00
hangouts +1,

messenger 的色块设计个人有点难接受..
gamexg
2016-07-29 10:24:24 +08:00
@ivanchou 原生短信里面能看到旧的短信, AirDroid 也可以看到旧短信,但是都没有新短信。

@echopan 已经设置为了默认, google 账号同步一直开着,虽然一直 s+s ,但是还是觉得网络不太好,换机一直都是手动备份还原。

@l8mEQ331 今天在 v2 看到了 messenger 的帖子,就打算试一下,结果就碰到了这个问题。


查 log , sqlite 报错: android.database.sqlite.SQLiteException: no such column: sub_id (code 1): , while compiling: SELECT _id, type, address, body, date, thread_id, status, read, seen, date_sent, sub_id FROM sms WHERE ((type IN (1, 4, 6, 5, 2)) AND date>=1469758098175 AND date<1469758474248) ORDER BY date DESC

数据库格式不对? sub_id 是什么列?

···
07-29 10:14:34.987 1860-3699/? E/DatabaseUtils﹕ Writing exception to parcel
android.database.sqlite.SQLiteException: no such column: sub_id (code 1): , while compiling: SELECT _id, type, address, body, date, thread_id, status, read, seen, date_sent, sub_id FROM sms WHERE ((type IN (1, 4, 6, 5, 2)) AND date>=1469758098175 AND date<1469758474248) ORDER BY date DESC
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:891)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:502)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316)
at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:400)
at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:294)
at com.android.providers.telephony.SmsProvider.query(SmsProvider.java:311)
at android.content.ContentProvider.query(ContentProvider.java:1014)
at android.content.ContentProvider$Transport.query(ContentProvider.java:228)
at com.zte.ZTESecurity.ZTETransport.query(ZTETransport.java:57)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
at android.os.Binder.execTransact(Binder.java:446)
07-29 10:14:34.987 12393-12482/? E/Bugle﹕ SqliteWrapper: catch an exception when query
07-29 10:14:34.997 12393-12482/? E/Bugle﹕ android.database.sqlite.SQLiteException: no such column: sub_id (code 1): , while compiling: SELECT _id, type, address, body, date, thread_id, status, read, seen, date_sent, sub_id FROM sms WHERE ((type IN (1, 4, 6, 5, 2)) AND date>=1469758098175 AND date<1469758474248) ORDER BY date DESC
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:181)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:137)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:421)
at android.content.ContentResolver.query(ContentResolver.java:478)
at android.content.ContentResolver.query(ContentResolver.java:422)
at com.google.android.apps.messaging.shared.mmslib.a.aJW(SourceFile:40)
at com.google.android.apps.messaging.shared.datamodel.action.M.<init>(SourceFile:434)
at com.google.android.apps.messaging.shared.datamodel.action.X.US(SourceFile:119)
at com.google.android.apps.messaging.shared.datamodel.action.SyncMessagesAction.Uz(SourceFile:285)
at com.google.android.apps.messaging.shared.datamodel.action.SyncMessagesAction.Sn(SourceFile:236)
at com.google.android.apps.messaging.shared.datamodel.action.BackgroundWorkerService.Wi(SourceFile:134)
at com.google.android.apps.messaging.shared.datamodel.action.BackgroundWorkerService.onHandleIntent(SourceFile:111)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.os.HandlerThread.run(HandlerThread.java:61)
07-29 10:14:34.997 12393-12482/? W/Bugle﹕ SyncCursorPair: Remote SMS query returned null cursor; need to cancel sync
07-29 10:14:34.997 12393-12482/? A/BugleDataModel﹕ wtf
SyncMessagesAction: unexpected failure in scan
java.lang.RuntimeException: Null cursor from remote SMS query
at com.google.android.apps.messaging.shared.datamodel.action.M.<init>(SourceFile:445)
at com.google.android.apps.messaging.shared.datamodel.action.X.US(SourceFile:119)
at com.google.android.apps.messaging.shared.datamodel.action.SyncMessagesAction.Uz(SourceFile:285)
at com.google.android.apps.messaging.shared.datamodel.action.SyncMessagesAction.Sn(SourceFile:236)
at com.google.android.apps.messaging.shared.datamodel.action.BackgroundWorkerService.Wi(SourceFile:134)
at com.google.android.apps.messaging.shared.datamodel.action.BackgroundWorkerService.onHandleIntent(SourceFile:111)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.os.HandlerThread.run(HandlerThread.java:61)
07-29 10:14:34.997 12393-12482/? A/BugleDataModel﹕ SyncMessagesAction: unexpected failure in scan
java.lang.RuntimeException: Null cursor from remote SMS query
at com.google.android.apps.messaging.shared.datamodel.action.M.<init>(SourceFile:445)
at com.google.android.apps.messaging.shared.datamodel.action.X.US(SourceFile:119)
at com.google.android.apps.messaging.shared.datamodel.action.SyncMessagesAction.Uz(SourceFile:285)
at com.google.android.apps.messaging.shared.datamodel.action.SyncMessagesAction.Sn(SourceFile:236)
at com.google.android.apps.messaging.shared.datamodel.action.BackgroundWorkerService.Wi(SourceFile:134)
at com.google.android.apps.messaging.shared.datamodel.action.BackgroundWorkerService.onHandleIntent(SourceFile:111)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.os.HandlerThread.run(HandlerThread.java:61)

···
gamexg
2016-07-29 10:40:56 +08:00
基本确认是系统问题, android API 22 (5.1)新增了 sub_id 字段,但是 zte 5.1 里面没有这个字段,也许人工修改数据库增加这个字段并设置默认值为-1 能够解决这个问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/295678

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX