Странное поведение при вызове активности выбора контактов - PullRequest
1 голос
/ 11 декабря 2011

Испытываете какое-то странное поведение при попытке выбрать контакт и вернуть его в мою деятельность.Все работает, за исключением того, что я вижу некоторые контакты, которые не должны отображаться.например, люди, за которыми я следую в твиттере, но не имею другого взаимодействия с.Я понимаю, почему эти записи существуют в базе данных, но они не отображаются, когда я нажимаю «Люди» и запускаю приложение диспетчера контактов по умолчанию на телефоне, поэтому они не должны отображаться, когда я прошу мое приложение отобразить список людей.выбрать из?

Самым странным является то, что если я наберу письмо, чтобы отфильтровать список (например, нажмите «A», чтобы показать все контакты, содержащие «A»), а затем нажмите клавишу Backspace (так что ятеперь снова отображаются все записи) фантомные контакты исчезают!

Есть идеи у кого-нибудь?Я действительно не хочу, чтобы меня беспокоили, когда я пишу свое собственное действие «Выбрать контакт».Код (довольно простой), показанный ниже:

    public void launchContactPicker() {
//      Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_FILTER_URI, Uri.encode("steve"));
        Uri uri = ContactsContract.Contacts.CONTENT_URI;
        Toast.makeText(this, "Contacts uri = [" + uri +"]", Toast.LENGTH_SHORT).show();
        try {
            Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, uri);   
            startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);
        }
        catch (Exception e) {
            Toast.makeText(this, "Exception: " + e.getMessage(), Toast.LENGTH_LONG).show();
        }
    } 

Я также пытался запросить отфильтрованный список контактов (хотя, возможно, с помощью этого и с использованием подстановочных знаков можно добиться успеха), но мне не удалось заставить его работать вообще,Кажется, намерение ACTION_PICK не предназначено для работы с такого рода Uir?

...