我正在开发一个应用程序,我从中访问来自正文的消息,来自地址的移动号码,消息ID,person-给出一个int值(我不知道什么是人)代码:----
Uri uriSMSURI = Uri.parse("content://sms/inbox");
Cursor cur = getContentResolver().query(uriSMSURI , null, "read=0",
null, null);
工作正常:---
现在问题就是 - 如果我的移动联系人列表中保存了任何手机号码,我想在ListView
中显示该名称,否则我想要显示手机{{1}我从number
Feed访问。
我将如何从收件箱address
获取姓名?
任何帮助都会得到赞赏。
谢谢&问候, Deepanker
答案 0 :(得分:0)
需要尝试此代码
public String findNameByAddress(Context ct,String addr)
{
Uri myPerson = Uri.withAppendedPath(ContactsContract.CommonDataKinds.Phone.CONTENT_FILTER_URI,
Uri.encode(addr));
String[] projection = new String[] { ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME };
Cursor cursor = ct.getContentResolver().query(myPerson,
projection, null, null, null);
if (cursor.moveToFirst()) {
String name=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
Log.e("","Found contact name");
cursor.close();
return name;
}
cursor.close();
Log.e("","Not Found contact name");
return addr;
}
和
答案 1 :(得分:0)
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));
}