2012-04-07 17 views
0

私は編集テキストとボタンがあります。編集テキストでは数字を入力し、ボタンを押すと連絡先情報が表示されるか、連絡先の名前が返されます。番号から連絡先の名前を取得

私は運がないあらゆる種類の方法を試しました。私が成功裏に成功したのは以下のものでした...しかし、私はその名前を返す運がなかった。説明するように最適化されたPhoneLookupプロバイダを使用する必要があることについては

Cursor phoneCursor = null; 
    contactList = new HashMap<String,String>(); 

    try{ 
     Uri uContactsUri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; 

     String strProjection = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME; 

     phoneCursor = getContentResolver().query(uContactsUri, null, null, null, strProjection); 
     phoneCursor.moveToFirst(); 

     String name = ""; 
     String phoneNumber = ""; 

     int nameColumn = phoneCursor.getColumnIndex(Phone.DISPLAY_NAME); 
     int phoneColumn = phoneCursor.getColumnIndex(Phone.NUMBER); 



      phoneCursor.moveToNext(); 

     } 
    } 
    catch(Exception e){ 
     Log.e("[SmsMain] getContactData", e.toString()); 
    } 
    finally{ 
     if(phoneCursor != null){ 
      phoneCursor.close(); 
      phoneCursor = null; 
     } 
    } 
} 

答えて

0

ため、このLINKを参照してください。

private 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; 
     } 

     // return the original number if no match was found 
     return number; 
    } 
0

here

ウリのuri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI、Uri.encode(にphoneNumber)); カーソルカーソル= resolver.query(uri、new String [] {PhoneLookup.DISPLAY_NAME}、null、null、null);

は、連絡先の名前を取得し、番号が同じ番号が返され、名前の代わりに存在するdoesnot場合には、以下の方法を使用して、より詳細

関連する問題