2011-11-14 234 views
0

我收到以下錯誤。聯繫人姓名電話號碼

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

嘗試; – Hiral

回答

2

你可以試試這個代碼:使用context.getContentResolver.query(...)

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(); 
+0

完美答案...好。 – Nirav

+0

很高興幫助.. :) – Hiral

相關問題