【问题标题】:Why the insertion of SMS with the content resolver sometimes return a uri with 0?为什么使用内容解析器插入 SMS 有时会返回 0 的 uri?
【发布时间】:2019-07-19 15:41:19
【问题描述】:

以下代码适用于部分平板电脑,不适用于搭载 Android 7 (API 25) 和 8 (API 27)、三星和华为的其他平板电脑。 问题是当使用内容解析器在数据库中插入新短信时,它总是返回一个带有 0(“content://sms/sent/0”)的 uri,而不是带有 sms id 的 uri(“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
    }

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

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

【问题讨论】:

  • 您是否启用了权限
  • 是的,我可以在所有平板电脑上发送、储存和做我想做的一切。仅在某些平板电脑上,返回的 uri 为 0。SMS 始终发送良好且库存充足。我可以通过查询找到它并通过这种方式获取它的 ID。

标签: android sms


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 2020-03-22
    • 1970-01-01
    相关资源
    最近更新 更多