0

始める前に、SMS コンテンツ プロバイダーが文書化されていないことを知っています。私はそれを使用することが推奨されていないことを知っています。

とにかく使っているので、私の目標の1つを達成するのを手伝ってほしい. 現在、問題なくメッセージを追加および削除できます。この問題は、スレッド全体を削除して復元しようとした後に発生します。メッセージはデータベースにあります (再度追加しようとすると、エラーが発生します。

android.database.sqlite.SQLiteConstraintException: PRIMARY KEY must be unique (code 19)

だから私はメッセージがそこにあることを知っています.)しかし、メッセージアプリを開くと、それらは表示されません.

スレッドから 1 つを除いてすべてのメッセージを削除すると、復元されたメッセージがスレッドに正常に表示されます。新しいメッセージ スレッドを作成できない理由について何か考えはありますか?

Uri allSmsUri = Uri.parse("content://sms/");

.

getContentResolver().delete(allSmsUri, "_id = ?", new String[] { m.get_id() });

.

        ContentValues values = new ContentValues();
        values.put("person", m.getPerson());
        values.put("_id", m.get_id());
        values.put("thread_id", m.getThread_id());
        values.put("body", m.getBody());
        values.put("address", m.getAddress());
        values.put("read", m.getRead());
        values.put("date", m.getDate());
        values.put("type", m.getType());
        values.put("date_sent", m.getDate_sent());
        values.put("protocol", m.getProtocol());
        values.put("status", m.getStatus());
        values.put("reply_path_present", m.getreply_path_present());
        values.put("subject", m.getSubject());
        values.put("service_center", m.getservice_center());
        values.put("locked", m.getLocked());
        values.put("error_code", m.getError_code());
        values.put("seen", m.getSeen());

getContentResolver().insert(allSmsUri, values);
4

1 に答える 1