安卓短信_id

Dav*_*ita 0 sqlite sms android android-contentprovider

我用谷歌搜索了几次,但找不到我要找的东西。Android 为每条短信分配一个 id。我想知道这个 ID 是否总是唯一的?我可以依靠它来识别短信还是应该自己分配?

谢谢 :)

Ale*_*ood 5

查看源代码MmsSmsDatabaseHelper并注意该createSmsTables方法的实现:

private void createSmsTables(SQLiteDatabase db) {
    // N.B.: Whenever the columns here are changed, the columns in
    // {@ref MmsSmsProvider} must be changed to match.
    db.execSQL("CREATE TABLE sms (" +
               "_id INTEGER PRIMARY KEY," +
               "thread_id INTEGER," +
               "address TEXT," +
               "person INTEGER," +
               "date INTEGER," +
               "date_sent INTEGER DEFAULT 0," +
               "protocol INTEGER," +
               "read INTEGER DEFAULT 0," +
               "status INTEGER DEFAULT -1," + 
               "type INTEGER," +
               "reply_path_present INTEGER," +
               "subject TEXT," +
               "body TEXT," +
               "service_center TEXT," +
               "locked INTEGER DEFAULT 0," +
               "error_code INTEGER DEFAULT 0," +
               "seen INTEGER DEFAULT 0" +
               ");");

    /* rest of implementation not shown */
}
Run Code Online (Sandbox Code Playgroud)

_id分配给每个SMS消息是PRIMARY KEY如此肯定的,它唯一地标识每个SMS消息。