Moim celem jest wyświetlanie tylko kontaktów z numerem telefonu do użytkownika i pozwolić użytkownikowi wybrać kilka kontaktów, które chcę przechowywać lokalnie.Wyświetlanie kontaktów tylko z numerami telefonów za pomocą intencji ACTION_PICK w urządzeniu z systemem Android
Użyłem różnych opcji zamiast KontaktyContract.Contacts.CONTENT_URI w poniższej metodzie. Ale dostaję dużo wielu kontaktów (wiele z nich zawiera tylko e-maile).
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);
}
});
}
Jeśli przechodzą ContactsContract.Contacts.CONTENT_URI jako parametr do powyższego sposobu, w przypadku programu obsługi poniżej sposób, ciąg [] W sposobie zapytania jako parametry projektora (które są pokazane komentarzem) metoda powoduje java.lang.IllegalArgumentException. Jeśli przekazuję wartość null w poniższej metodzie, to niezależnie od wybranego kontaktu nie znajduję żadnej kolumny dotyczącej numeru telefonu ani adresu e-mail.
@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();
}
}
}
}
Czy jest jakikolwiek sposób wyświetlenia tylko kontaktów widocznych dla użytkownika, zazwyczaj gdy użytkownik przechodzi do książki telefonicznej i który ma dostępne numery telefonów?
Próbowałem przeglądać wszystkie wątki w stackoverflow i innych witrynach, ale nie mogłem znaleźć żadnego rozwiązania, które rozwiązałoby problem, chociaż wiele osób opublikowało ten problem. Nie współpracowałem zbyt wiele z platformą Android i mogłem pominąć pewne drobne szczegóły i uważam, że musi istnieć łatwy sposób osiągnięcia tego.
Uprzejmie sugerujemy. Doceniam Twoją pomoc.
Dzięki.
nie moje ans pomógł? –