从短信表中获取发件人的联系人姓名?

时间:2011-08-08 12:41:09

标签: android

我使用以下内容从收件箱中获取短信

ContentResolver cr = getContentResolver();
    Cursor cur = cr.query(Uri.parse("content://sms"), null,null,null, null);        
    DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");

     cursor_count=cur.getCount();

    if(cur.moveToFirst())
    {           
        do {

            sender.add(cur.getString(2));

            msg.add(cur.getString(11));
            date.add(formatter.format(Long.parseLong(cur.getString(4))));
        } while (cur.moveToNext());

我从地址栏中获取此人的地址,但如果存储在我的联系人中,我还想获取发件人的联系人姓名。
person字段始终返回null,为什么?

1 个答案:

答案 0 :(得分:6)

试试这段代码

 String contact=address;
                           Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(address));  
                           Cursor cs= context.getContentResolver().query(uri, new String[]{PhoneLookup.DISPLAY_NAME},PhoneLookup.NUMBER+"='"+address+"'",null,null);

                           if(cs.getCount()>0)
                           {
                            cs.moveToFirst();
                            contact=cs.getString(cs.getColumnIndex(PhoneLookup.DISPLAY_NAME));
                           }