联系电话号码姓名

时间:2011-11-14 11:40:08

标签: android android-2.2-froyo

我收到以下错误。

java.lang.NullPointerException
11-14 16:46:59.093: E/AndroidRuntime(4064):     at android.content.ContextWrapper.getContentResolver(ContextWrapper.java:90)

使用以下代码。

public String getContactNameFromNumber(String number) {
        // define the columns I want the query to return
        String[] projection = new String[] {
                Contacts.Phones.DISPLAY_NAME,
                Contacts.Phones.NUMBER };


        // encode the phone number and build the filter URI
        Uri contactUri = Uri.withAppendedPath(Contacts.Phones.CONTENT_FILTER_URL, Uri.encode(number));

        // query time
        Cursor c = getContentResolver().query(contactUri, projection, null,
                null, null);

        // if the query returns 1 or more results
        // return the first result
        if (c.moveToFirst()) {
            String name = c.getString(c
                    .getColumnIndex(Contacts.Phones.DISPLAY_NAME));
            return name;
        }

任何人都知道为什么我会收到此错误。

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以尝试以下代码:

String address="3791783465"; //phone number you already have

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

if(cs.getCount()>0)
{
     cs.moveToFirst();    
     Toast.makeText(context,cs.getString(cs.getColumnIndex(PhoneLookup.DISPLAY_NAME),Toast.LENGTH_SHORT).show();
     cs.close();
}
else
     Toast.makeText(context,"Unknown",Toast.LENGTH_SHORT).show();