Моя цель состоит в том, чтобы показывать только контакты с номером телефона пользователю и позволять пользователю выбирать несколько контактов, которые я хочу сохранить локально.Отображение контактов только с телефонными номерами с использованием намерения ACTION_PICK в устройстве Android
Я использовал различные варианты вместо ContactsContract.Contacts.CONTENT_URI в методе ниже. Но я получаю много контактов (многие из них являются нежелательными только с идентификаторами электронной почты).
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contact_selector);
((Button)findViewById(R.id.btnphonecontactlist)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent contactIntent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(contactIntent, 1);
}
});
}
Если я передать ContactsContract.Contacts.CONTENT_URI в качестве параметра для метода выше, и в случае метода обработчика ниже, строка [] для метода запроса в качестве параметров проекции (которые показаны) комментировал, метод терпит неудачу с java.lang.IllegalArgumentException. Если я передаю значение null в методе ниже, то какой бы контакт я ни выбрал, я не нашел столбец, связанный с номером телефона или электронной почтой.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(data != null)
{
Uri uri = data.getData();
if(uri != null)
{
Cursor c = null;
try
{
c = getContentResolver().query(uri, null
// new String[] {
//ContactsContract.CommonDataKinds.Phone.NUMBER,
//ContactsContract.CommonDataKinds.Phone.TYPE},
, null, null, null);
if(c != null && c.moveToFirst())
{
String number = c.getString(0);
String type = c.getString(1);
}
}
finally
{
if(c != null && !c.isClosed())
c.close();
}
}
}
}
Есть ли способ, чтобы отобразить только контакты видны пользователю, как правило, когда пользователь переходит к телефонной книге и которая имеет номера телефонов доступны?
Я попытался пройти через все потоки в stackoverflow и других сайтах, но не смог найти решения, которые разрешают проблему вокруг этого, хотя многие люди разместили эту проблему. Я не очень много работал с платформой Android, и я, возможно, пропустил некоторые мелкие детали, и я считаю, что для этого должен быть простой способ.
Просьба предложить. Ценю вашу помощь.
Спасибо.
ли помог моим анс? –