我用谷歌搜索了几次,但找不到我要找的东西。Android 为每条短信分配一个 id。我想知道这个 id 是否总是唯一的?我可以依靠它来识别短信还是应该分配自己的短信?
谢谢 :)
我用谷歌搜索了几次,但找不到我要找的东西。Android 为每条短信分配一个 id。我想知道这个 id 是否总是唯一的?我可以依靠它来识别短信还是应该分配自己的短信?
谢谢 :)
查看源代码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 */
}
_id
分配给每条短信的 是是的PRIMARY KEY
,它唯一地标识每条短信。
SMS_ID 对于每条消息始终是唯一的。但是还有另一个名为 Thread_ID 的列对于每个对话都是通用的,即 android 手机中的非常对话给出了唯一的 Thread_Id。但是该特定线程中的每条消息都有一个唯一的 SMS_ID
由于它使用 SQLite,即关系数据库,因此不可能有重复的标识符。