我收到以下错误。
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;
}
任何人都知道为什么我会收到此错误。
谢谢。
答案 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();