首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用sqlite3访问sms.db

尝试使用sqlite3访问sms.db
EN

Stack Overflow用户
提问于 2012-03-22 00:07:58
回答 2查看 2.7K关注 0票数 1

我通常会删除所有的短信,但这次我不小心删除了我需要的一段对话。我对我的iPhone4进行了备份(第一次),然后使用iphone备份解压程序从备份中提取sms.db。使用sqlite3,我看到了大量的教程,我可以查看我删除的短信。但是,所有的表似乎都是空的。当我在notepad++中查看sms.db文件时,我确实看到了我很久以前和最近删除的零星消息。然而,我没有看到任何接近我所有消息的地方,我假设它们就在那里的某个地方。如果sqlite产品无法看到它们,我该如何去查看它们;但我知道它就在那里。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2012-03-22 20:23:18

您可以在methode上尝试此操作

代码语言:javascript
复制
public class Database_creat {
    private static final String DATABASE_NAME = "ToDo_List.db";
    public static final String DATABASE_TABLE_CATEGORY = "category";
    public static final String DATABASE_TABLE_TODO_LIST = "todo_list";
    private static final int DATABASE_VERSION = 1;
    public ArrayList<ModelToDO> list;


    private DataBaseHelper mDbhelper;
    private SQLiteDatabase mDb;

    Context mContext;
    private static final String DATABASE_CREATE_CATEGORY = "create table category(id integer primary key autoincrement , "
            + "category text not null);";
    private static final String DATABASE_CREATE_TODO_LIST = "create table todo_list(id integer primary key autoincrement , "
            + "title text not null,description text not null,category text not null, due_date Date not null,alarm_time text ,alarm_set text,priority text,parform Boolean);";

    private static class DataBaseHelper extends SQLiteOpenHelper {

        DataBaseHelper(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
            // TODO Auto-generated constructor stub
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
            // TODO Auto-generated method stub
            db.execSQL(DATABASE_CREATE_CATEGORY);
            db.execSQL(DATABASE_CREATE_TODO_LIST);
        }

        //Delete All todo_list Table info
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            // TODO Auto-generated method stub
            db.execSQL("DROP TABLE IF EXISTS submit");
            onCreate(db);
        }
    }

    public Database_creat(Context context) {
        this.mContext = context;
    }

    public Database_creat Open() throws SQLException {
        mDbhelper = new DataBaseHelper(mContext);
        mDb = mDbhelper.getWritableDatabase();
        return this;

    }

    public void close() {
        mDbhelper.close();
    }

    //Add new Category name
    public long insertinfo(String cate) {
        ContentValues con = new ContentValues();
        con.put("category", cate);
        return mDb.insert(DATABASE_TABLE_CATEGORY, null, con);
    }

    //Get All Category Name
    public Cursor getInfoRecords() {
        return mDb.query(DATABASE_TABLE_CATEGORY, new String[] { "id","category" }, null, null, null, null, null);
    }

    //Get All todo_list Table record 
    public Cursor getInfoRecords_todo() {
        return mDb.query(DATABASE_TABLE_TODO_LIST, new String[] { "id",
                "title", "description", "category", "due_date", "alarm_time",
                "alarm_set", "priority", "parform" }, null, null, null, null,
                null);
    }

    //Delete All todo_list Table info
    public void delall() {
        // TODO Auto-generated method stub
        mDb.delete(DATABASE_TABLE_TODO_LIST, null, null);
        Log.v("delete", DATABASE_CREATE_TODO_LIST + "all table data delete");
    }

    //new Record insert in todo_list table  
    public Long insert_todoinfo(String a, String b, String c, String d,
            String e, String f, String g) {
        // TODO Auto-generated method stub
        ContentValues con = new ContentValues();
        con.put("title", a);
        con.put("description", b);
        con.put("category", e);
        con.put("due_date", c);
        con.put("alarm_time", d);
        con.put("alarm_set", f);
        con.put("priority", g);
        con.put("parform", "false");
        return mDb.insert(DATABASE_TABLE_TODO_LIST, null, con);
    }


    //Delete id vs todo_list Table record 
    public void getdata_delet(int id) {
        // TODO Auto-generated method stub
         mDb.delete(DATABASE_TABLE_TODO_LIST, "id ='"+id +"'", null);

    }


    //Update id vs todo_list Table in CheckBox info 
    public void update_cb(int id, Boolean b) {
        // TODO Auto-generated method stub
        ContentValues con = new ContentValues();
        con.put("parform", b);
        mDb.update(DATABASE_TABLE_TODO_LIST, con, "id ='" + id + "'",null);
    }

    //Delete id vs category Table record 
    public void delete_category(int id) {
        // TODO Auto-generated method stub
        Log.v("id del cage",id+"");
         mDb.delete(DATABASE_TABLE_CATEGORY, "id ='"+id +"'", null);
    }


}
票数 0
EN

Stack Overflow用户

发布于 2012-05-14 09:29:40

如果您在sqlite3中运行以下命令,您应该会看到所有已删除的邮件

代码语言:javascript
复制
SELECT address, text FROM message WHERE flags = 129;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9808448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档