android 从SMS获取联系人信息

 在SMS数据库中person这个值得到的有人说就是联系人的ID但是实际上这个值是不稳定的,这里要得到联系人信息需要通过address获得的发件人电话号码和ContactsContract.PhoneLookup.CONTENT_FILTER_URI来实现.代码如下

ContactItem getContactByAddr(Context context, final SMSItem sms) { 
    Uri personUri = Uri.withAppendedPath( 
            ContactsContract.PhoneLookup.CONTENT_FILTER_URI, sms.mAddress); 
    Cursor cur = context.getContentResolver().query(personUri, 
            new String[] { PhoneLookup.DISPLAY_NAME }, 
            null, null, null ); 
    if( cur.moveToFirst() ) { 
        int nameIdx = cur.getColumnIndex(PhoneLookup.DISPLAY_NAME); 
        ContactItem item = new ContactItem(); 
        item.mName = cur.getString(nameIdx); 
       cur.close(); 
       return item; 
   } 
   return null; 
}

android 中管理短信

关于android中短信管理的一些东西.