Как настроить фильтр намерений для действия ОТПРАВИТЬ только при отправке контакта?

Я хотел зарегистрировать фильтр намерений в своем приложении, чтобы я мог поделиться контактом из другого приложения со своим.

Я уже могу добиться этого, добавив это в свой манифест:

<intent-filter>
  <action android:name="android.intent.action.SEND" /> 
  <category android:name="android.intent.category.DEFAULT" /> 
  <data android:mimeType="text/*" />
</intent-filter>

Проблема в том, что мое приложение появляется во всех всплывающих окнах «Поделиться» или «Отправить» из других приложений, совместно использующих текстовые данные. Как я могу ограничить это, чтобы мое приложение отображалось только во всплывающем окне общего доступа к контакту?

Я уже пытался использовать android:host="com.android.contacts" внутри <data>, но не помогло.

Спасибо!


person Ricardo Otero    schedule 19.10.2011    source источник


Ответы (1)


Когда вы устанавливаете android:host, вам также необходимо установить android:scheme, иначе он будет проигнорирован. Попробуйте установить его как android:scheme="content". Все, что это сделает, это помешает вам принимать намерения без URI данных, который содержит полномочия «com.android.contacts».

При этом указанный вами тип mime будет принимать любой текстовый контент. Это то, что вы намеревались? Возможно, вам следует использовать MIME-тип элемента контакта указано Google.

person Justin Breitfeller    schedule 19.10.2011
comment
О, теперь я понял! Использование только android:mimeType="text/x-vcard" решило мою проблему! Большое спасибо! :) - person Ricardo Otero; 20.10.2011
comment
@RicardoOtero, я находил то же самое. это сэкономило мое время спасибо. - person Sanket Kachhela; 29.12.2015