Check the source code of MmsSmsDatabaseHelper and pay attention to the implementation of the createSmsTables method:
private void createSmsTables(SQLiteDatabase db) { // NB: 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 */ }
_id that is assigned to each sms message is a PRIMARY KEY , so yes, it uniquely identifies each sms message.
source share