0

何度かグーグルで検索しましたが、探しているものが見つかりませんでした。Androidは各SMSメッセージにIDを割り当てます。このIDが常に一意であるかどうかを知りたいですか?SMSメッセージを識別するためにそれを信頼できますか、それとも自分で割り当てる必要がありますか?

ありがとう :)

4

3 に答える 3

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 */
}

_idSMSメッセージに割り当てられているのはPRIMARY KEYそうです、それは各SMSメッセージを一意に識別します。

于 2012-06-18T01:18:00.333 に答える
3

SMS_IDはすべてのメッセージで常に一意ですが、すべての会話に共通するThread_IDという名前の別の列もあります。つまり、Androidスマートフォンでの会話では、一意のThread_Idが指定されています。ただし、その特定のスレッド内の各メッセージには一意のSMS_IDがあります。

于 2012-06-18T04:56:47.040 に答える
2

リレーショナルデータベースであるSQLiteを使用しているため、重複する識別子を持つことはできません。

于 2012-06-18T00:54:31.540 に答える