我的代码在这里
Uri uriSMSURI = Uri.parse("content://sms/inbox");
Cursor cur = getContentResolver().query(uriSMSURI, null, null, null,null);
要获取我正在使用的消息
while (cur.moveToNext()) {
sms +=cur.getString(2) + " : " +
cur.getString(13).replace(" "," ") + " : " +cur.getString(14) +"\n\n\n";
}
在上面的cur.getString(int id)中,第二个索引是发件人,第13个索引是邮件,第14个是号码。我对未读邮件感到困惑。
答案 0 :(得分:0)
这里
https://developer.android.com/reference/android/provider/Telephony.TextBasedSmsColumns.html
是所有列的描述。您需要“读取”列。如果它为零-这是未读的消息。
使用方法:
ContentResolver cr = getContentResolver();
Uri inboxURI = Uri.parse("content://sms/");
Cursor c = cr.query(inboxURI, null, null, null, null);
if (c!=null) {
int columnAddress = c.getColumnIndex("address");
int columnBody = c.getColumnIndex("body");
int columnRead = c.getColumnIndex("read");
while (c.moveToNext()) {
String smsFrom = c.getString(columnAddress);
String smsBody = c.getString(columnBody);
int smsRead = c.getInt(columnRead);
if (smsRead == 0) {
// message unread
} else {
// message read
}
}
}