Проблема с Android-фильтром - PullRequest
2 голосов
/ 23 июля 2011

Я пытаюсь написать фильтр намерений, чтобы выбрать контакт из списка контактов (для чисто образовательных целей ... я изучаю намерения). После вызова startActivity с неявным намерением, android должен найти мое пользовательское действие, а также задание по умолчанию в качестве возможных действий и разрешить мне выбрать, какое из них я хочу использовать (разрешение намерений).

Однако, с моими текущими настройками, он открывает палитру контактов Android по умолчанию, не давая мне выбора. Вот мой фильтр намерений.

<activity android:name=".ContactPicker" android:label="PICKER" >
    <intent-filter>
        <action android:name="android.intent.action.PICK" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="content" android:host="com.android.contacts" android:path="contacts" />
    </intent-filter>
</activity>

и вот как я называю неявное намерение в основной деятельности:

Intent intent = new Intent(Intent.ACTION_PICK, Uri.parse("content://com.android.contacts/contacts"));
startActivityForResult(intent, PICK_CONTACT);

1 Ответ

4 голосов
/ 23 июля 2011

Попробуйте:

<intent-filter>
    <action android:name="android.intent.action.PICK"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:mimeType="vnd.android.cursor.dir/contact"/>
</intent-filter>
...