是否可以,从Android中的收件箱访问名称?

时间:2012-11-23 11:02:05

标签: android message android-contentprovider android-contacts inbox

我正在开发一个应用程序,我从中访问来自正文的消息,来自地址的移动号码,消息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

2 个答案:

答案 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));
                           }