2012-03-30 7 views
3

Ich möchte Telefon keine Person von seinem Namen, die in meiner Kontaktliste sind. Ich habe den folgenden Code verwendet, aber es funktioniert nicht gut. Sag mir, wo ich falsch liege.So erhalten Sie die Telefonnummer von Person Name, die in meiner Kontaktliste sind in Android

  try {     
     cursor_company =getContentResolver().query(ContactsContract.Data.CONTENT_URI, 
null,ContactsContract.Data.DISPLAY_NAME+ " = " + "sidharth", null, null);   
       }   
     catch(Exception e)    
     {  
     System.out.println("this is exception "+e);    
     }   
     String phone_number;   
     while (cursor_company.moveToNext()) {   
     Phone_number =cursor_company.getString(   
     cursor_company.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));    
    System.out.println(" this is user no. is"+phone_number);   
       }    
     cursor_company.close();    
     }    

Die Ausnahme kam, als ich diesen Code laufen unter

android.database.sqlite.SQLiteException: no such column: bhawana: , while compiling: SELECT data_version, phonetic_name, phonetic_name_style, contact_id, lookup, data12, data11, data10, mimetype, data15, data14, data13, display_name_source, data_sync1, data_sync3, data_sync2, agg_presence.chat_capability AS contact_chat_capability, data_sync4, account_type, custom_ringtone, sp, status_updates.status AS status, data1, data4, data5, data2, data3, sns_id, data8, data9, group_sourceid, data6, account_name, data7, display_name, in_visible_group, display_name_alt, contacts_status_updates.status_res_package AS contact_status_res_package, is_primary, contacts_status_updates.status_ts AS contact_status_ts, raw_contact_id, times_contacted, contacts_status_updates.status AS contact_status, status_updates.status_res_package AS status_res_package, status_updates.status_icon AS status_icon, contacts_status_updates.status_i 
+0

keine Ausnahme? – Sameer

+0

ja die ausnahme ist "spalte nicht gefunden" ich kann dir auch die komplette anzeigen, wenn du willst –

+0

auf den ersten blick ich sehe nichts falsch mit ihrem code. Kannst du uns sagen, was das Problem ist? Warum funktioniert es nicht gut? Was kommt zurück? – Th0rndike

Antwort

2

Hier ist es:

static final String[] CONTACTS_SUMMARY_PROJECTION = new String[] { 
    ContactsContract.Contacts._ID, 
    ContactsContract.Contacts.DISPLAY_NAME, 
    ContactsContract.Contacts.STARRED, 
    ContactsContract.Contacts.TIMES_CONTACTED, 
    ContactsContract.Contacts.CONTACT_PRESENCE, 
    ContactsContract.Contacts.PHOTO_ID, 
    ContactsContract.Contacts.LOOKUP_KEY, 
    ContactsContract.Contacts.HAS_PHONE_NUMBER, 
}; 

String name_to_search = "sidharth"; 

String select = "(" + ContactsContract.Contacts.DISPLAY_NAME + " == \"" +name_to_search+ "\")"; 
Cursor c = context.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, CONTACTS_SUMMARY_PROJECTION, select, null, ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC"); 
context.startManagingCursor(c); 

if (c.moveToNext()) 
{ 
    String id = c.getString(0); 
    ArrayList<String> phones = new ArrayList<String>(); 

    Cursor pCur = context.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", new String[]{id}, null); 
    while (pCur.moveToNext()) 
    { 
     phones.add(pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))); 
     Log.i("", name_to_search+ " has the following phone number "+ pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))); 
    } 
    pCur.close(); 
} 
+0

ich werde dieses Nimit überprüfen –

+0

Sicher. Wenn Sie meine Antwort nützlich finden, dann markieren Sie bitte als Antwort. :-) – Nimit

+0

Danke Nimit mein Problem ist jetzt gelöst :) –

2

Verwenden Sie die moveToFirst() Funktion des Cursors auf dem Spiel zu konzentrieren, und rufen Sie dann getString

Verwandte Themen