V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gamexg
V2EX  ›  Android

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

  •  
  •   gamexg · 2016-07-29 09:33:56 +08:00 · 9805 次点击
    这是一个创建于 3017 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    messenger 的色块设计个人有点难接受..
    gamexg
        6
    gamexg  
    OP
       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
        7
    gamexg  
    OP
       2016-07-29 10:40:56 +08:00
    基本确认是系统问题, android API 22 (5.1)新增了 sub_id 字段,但是 zte 5.1 里面没有这个字段,也许人工修改数据库增加这个字段并设置默认值为-1 能够解决这个问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1516 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 17:22 · PVG 01:22 · LAX 10:22 · JFK 13:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.