Получить локальную телефонную книгу контактов с SIM-карты только Android
Я хочу знать, возможно ли получить контакты, которые существуют только на SIM-карте или в телефонной книге. Прямо сейчас я использую следующий код для получения контактов, и он выбирает все контакты, даже мои контакты Gmail и Facebook.
<code>Cursor cursor = getContentResolver().query( ContactsContract.Contacts.CONTENT_URI, null, null, null, Phone.DISPLAY_NAME + " ASC"); if (cursor.getCount() > 0) { while (cursor.moveToNext()) { PhoneBookUserEntity user = new PhoneBookUserEntity(); // Pick out the ID, and the Display name of the // contact from the current row of the cursor user.setId(cursor.getString(cursor.getColumnIndex(BaseColumns._ID))); user.setPhoneBookName(cursor.getString(cursor.getColumnIndex( ContactsContract.Contacts.DISPLAY_NAME))); if(user.getphonebookname().length() > 4) username = user.getphonebookname();//.substring(0,4); else username = user.getphonebookname();//.substring(0,1); String hasPhone = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); // if (Boolean.parseBoolean(hasPhone)) { Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ user.getId(), null, null); while (phones.moveToNext()) { user.sePhoneNumber(phones.getString(phones.getColumnIndex( ContactsContract.CommonDataKinds.Phone.NUMBER))); } phones.close(); //} // user.sePhoneNumber(cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))); Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + user.getId(), null, null); while (emails.moveToNext()) { // This would allow you get several email addresses user.setEmailAddress(emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA))); } emails.close(); user.setImageURI(getPhotoUri(user.getId())); SearchContactsActivity.this.runOnUiThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub _progressDialog.setMessage("Copying over your local phone book. Retrieving contact information for \n"+ username.toUpperCase()); } }); arraylist.add(user); } } cursor.close(); </code>