为什么使用内容解析器插入 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 错误吗?任何解决方法?
找到了!
只是我的应用不是 默认发送消息的应用 。
还是谢谢
以下代码适用于某些平板电脑,但不适用于 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 错误吗?任何解决方法?
找到了! 只是我的应用不是 默认发送消息的应用 。 还是谢谢