如何阅读短信发件人的姓名?

时间:2014-08-02 19:24:08

标签: android sms inbox

我使用Uri.parse(" content:// sms / inbox")来阅读短信,但我无法弄清楚如何阅读发件人的姓名。我遇到了类似的问题,但无法找到明确的答案,只能提出建议:

ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null,null, null);
String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

其中包含我的联系人姓名,但不是每条短信的具体名称。

顺便说一句,当我使用" body"时,它会向我显示我所有的短信历史记录。有没有办法检查:

messageString = cursor.getString(0); //let's say 0 is "body"
(messageString == "HI") txt.setText("BYE");

而不只是获取完整的收件箱内容?

1 个答案:

答案 0 :(得分:1)

首先获取发件人电话号码,然后将发件人号码与联系人列表中的号码进行比较,如下所示:

Cursor phones = getContentResolver().query(ContactsContract.
CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
while (phones.moveToNext())
{
String name=phones.getString(phones.getColumnIndex(ContactsContract.
CommonDataKinds.Phone.DISPLAY_NAME));
String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.
CommonDataKinds.Phone.NUMBER));
  if (phoneNumber.equals(senderphonenumber)){
      //do something
   }
   }
  phones.close();