如何从Android中的联系人列表中的人名获取电话号码(How to get phone number from person name which are in my contact list 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(); }

我运行此代码时出现异常

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

I want to get phone no of the person from his name which are in my contact list. i have used the below code but it is not working fine. Tell me where i am wrong.

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(); }

The exception came when i run this code is below

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

最满意答案

就这个:

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(); }

Here is it:

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(); }如何从Android中的联系人列表中的人名获取电话号码(How to get phone number from person name which are in my contact list 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(); }

我运行此代码时出现异常

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

I want to get phone no of the person from his name which are in my contact list. i have used the below code but it is not working fine. Tell me where i am wrong.

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(); }

The exception came when i run this code is below

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

最满意答案

就这个:

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(); }

Here is it:

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(); }