为什么使用内容解析器插入 SMS 有时 return 带有 0 的 uri?

Why the insertion of SMS with the content resolver sometimes return a uri with 0?

以下代码适用于某些平板电脑,但不适用于 Android 7 (API 25) 和 8 (API 27)、三星和华为的其他平板电脑。 问题是当使用内容解析器在数据库中插入新的 SMS 时,它总是 returns 带有 0 ("content://sms/sent/0") 的 uri 而不是带有 sms id ("content://sms/sent/104",然后 "content://sms/sent/105").

   private val resolver = context.contentResolver

   fun saveSending(text: String, destAddress: String, threadId: Int = 0): Uri? {
        val uri = resolver.insert(Telephony.Sms.Sent.CONTENT_URI, ContentValues().apply {
            put(Telephony.Sms.BODY, text)
            put(Telephony.Sms.DATE, MainClock.clock.millis())
            put(Telephony.Sms.ADDRESS, destAddress)
            put(Telephony.Sms.TYPE, Telephony.Sms.MESSAGE_TYPE_OUTBOX)
            put(Telephony.Sms.THREAD_ID, threadId)
            put(Telephony.Sms.READ, true)
            put(Telephony.Sms.SEEN, true)
        })
        return uri
    }

在短信("resolver.query")之后查询时,它包含它的id 在 Telephony.Sms._ID 列中。

这是一个已知的 Android 错误吗?任何解决方法?

找到了! 只是我的应用不是 默认发送消息的应用 。 还是谢谢