如何没有发送消息
我如何无法收到发送消息?
在我从Telephony.sms.content_uri
中获取所有消息的地方,这是很好的工作。但是,如果我的消息没有发送(没有很多,没有收音机等),我没有eleathony.sms.content_uri
。
有趣的时刻:我与Smsmanager一起从应用程序发送消息。但是默认应用程序看不到发送消息。我可以重新审议。
fun getAllSms(context: Context): MutableList<SmsDto> {
val reqCols = arrayOf(
Telephony.Sms._ID, Telephony.Sms.ADDRESS, Telephony.Sms.BODY,
Telephony.Sms.DATE,
Telephony.Sms.DATE_SENT,
Telephony.Sms.TYPE,
Telephony.Sms.THREAD_ID,
Telephony.Sms.STATUS,
Telephony.Sms.READ,
Telephony.Sms.SEEN,
)
val cr: ContentResolver = context.contentResolver
val c: Cursor? = cr.query(Telephony.Sms.CONTENT_URI, reqCols, null, null, null)
val messages = mutableListOf<SmsDto>()
c?.let {
if (c.count > 0) {
while (c.moveToNext()) {
messages.add(SmsDto[c])
}
}
}
c?.close()
messages.sortByDescending { it.timestampInMillis }
return messages
}
private fun load(cursor: Cursor) {
cursor.getColumnIndex(Sms._ID).overMinusOneOrNull()?.let {
rowId = cursor.getLong(it)
}
cursor.getColumnIndex(Sms.ADDRESS).overMinusOneOrNull()?.let {
phone = cursor.getString(it)
}
cursor.getColumnIndex(Sms.BODY).overMinusOneOrNull()?.let {
body = cursor.getString(it)
}
cursor.getColumnIndex(Sms.DATE).overMinusOneOrNull()?.let {
timestampInMillis = cursor.getLong(it)
}
// Before ICS, there is no "date_sent" so use copy of "date" value
cursor.getColumnIndex(Sms.DATE_SENT).overMinusOneOrNull()?.let {
timestampSentInMillis = cursor.getLong(it)
}
cursor.getColumnIndex(Sms.TYPE).overMinusOneOrNull()?.let {
type = SmsType.values()[cursor.getInt(it)]
}
cursor.getColumnIndex(Sms.THREAD_ID).overMinusOneOrNull()?.let {
threadId = cursor.getLong(it)
}
cursor.getColumnIndex(Sms.STATUS).overMinusOneOrNull()?.let {
status = SmsStatus.values().find { i ->
i.rawStatus == cursor.getInt(it)
} ?: SmsStatus.NONE
}
cursor.getColumnIndex(Sms.READ).overMinusOneOrNull()?.let {
read = cursor.getInt(it) != 0
}
cursor.getColumnIndex(Sms.SEEN).overMinusOneOrNull()?.let {
seen = cursor.getInt(it) != 0
}
uri = ContentUris.withAppendedId(Sms.CONTENT_URI, rowId).toString()
}
upd upd2
您如何看待第一个图像默认应用程序从数据库中获取了一条消息。但是我从应用程序发送。在第二张图像中,我们可以看到我的应用程序无法从数据库中获取无发送消息。
第三张图像是信息,对于显示:我的应用程序从数据库获取收件箱/输出消息。
默认应用中的红色文本:否发送。触摸PLS发送。
How I can get no sent messages?
Where I get all messages from Telephony.Sms.CONTENT_URI
, it is good working. But if my message no sent (no many, no radio, etc), I no got in Telephony.Sms.CONTENT_URI
.
Interesting moment: I sending the message from my app, with SmsManager. But default app can see no sent messages. And I can resend it.
UPD
fun getAllSms(context: Context): MutableList<SmsDto> {
val reqCols = arrayOf(
Telephony.Sms._ID, Telephony.Sms.ADDRESS, Telephony.Sms.BODY,
Telephony.Sms.DATE,
Telephony.Sms.DATE_SENT,
Telephony.Sms.TYPE,
Telephony.Sms.THREAD_ID,
Telephony.Sms.STATUS,
Telephony.Sms.READ,
Telephony.Sms.SEEN,
)
val cr: ContentResolver = context.contentResolver
val c: Cursor? = cr.query(Telephony.Sms.CONTENT_URI, reqCols, null, null, null)
val messages = mutableListOf<SmsDto>()
c?.let {
if (c.count > 0) {
while (c.moveToNext()) {
messages.add(SmsDto[c])
}
}
}
c?.close()
messages.sortByDescending { it.timestampInMillis }
return messages
}
private fun load(cursor: Cursor) {
cursor.getColumnIndex(Sms._ID).overMinusOneOrNull()?.let {
rowId = cursor.getLong(it)
}
cursor.getColumnIndex(Sms.ADDRESS).overMinusOneOrNull()?.let {
phone = cursor.getString(it)
}
cursor.getColumnIndex(Sms.BODY).overMinusOneOrNull()?.let {
body = cursor.getString(it)
}
cursor.getColumnIndex(Sms.DATE).overMinusOneOrNull()?.let {
timestampInMillis = cursor.getLong(it)
}
// Before ICS, there is no "date_sent" so use copy of "date" value
cursor.getColumnIndex(Sms.DATE_SENT).overMinusOneOrNull()?.let {
timestampSentInMillis = cursor.getLong(it)
}
cursor.getColumnIndex(Sms.TYPE).overMinusOneOrNull()?.let {
type = SmsType.values()[cursor.getInt(it)]
}
cursor.getColumnIndex(Sms.THREAD_ID).overMinusOneOrNull()?.let {
threadId = cursor.getLong(it)
}
cursor.getColumnIndex(Sms.STATUS).overMinusOneOrNull()?.let {
status = SmsStatus.values().find { i ->
i.rawStatus == cursor.getInt(it)
} ?: SmsStatus.NONE
}
cursor.getColumnIndex(Sms.READ).overMinusOneOrNull()?.let {
read = cursor.getInt(it) != 0
}
cursor.getColumnIndex(Sms.SEEN).overMinusOneOrNull()?.let {
seen = cursor.getInt(it) != 0
}
uri = ContentUris.withAppendedId(Sms.CONTENT_URI, rowId).toString()
}
UPD2
How you can see, on the first image default app got a message from database. But I send it from my app. In the second image, we can see my app can't get from database no sent message.
The third image is information, for the show: my app getting inbox/outbox messages from the database.
Red text in default app: No sent. Touch pls for sending.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论