Как отфильтровать определенные приложения для ACTION_SEND намерение (и установить отдельный текст для каждого приложения)

Как можно отфильтровать определенные приложения при использовании намерения ACTION_SEND?Этот вопрос задавался по-разному, но я не смог найти решение на основе полученных ответов. Надеюсь, кто-то может помочь. Я хотел бы предоставить возможность поделиться в приложении.Следуя совету разработчика Android Александра Лукаса, я бы предпочел делать это с помощью намерений, а не с помощью API Facebook/Twitter.

Sharing using ACTION_SEND intent

Делиться с помощью намерения ACTION_SEND — это здорово, проблема в том, что (1) мне не нужны все варианты обмена, я бы предпочел ограничиться FB, Twitter и электронной почтой, и (2) я не хочу делиться одними и теми же вещами с каждым приложением для обмена. Например, в свою публикацию в твиттере я собираюсь включить некоторые упоминания и хэштеги, ограничив их до 140 символов или меньше, в то время как публикацию в Facebook будет включать ссылку и изображение функции.

Можно ли ограничить параметры намерения ACTION_SEND (поделиться)? Я видел кое-что об использовании PackageManager и queryIntentActivities, но не смог выяснить связь между PackageManager и намерением ACTION_SEND.

ИЛИ

Вместо того, чтобы фильтровать приложения для обмена, мою проблему также можно было бы решить, если бы я мог использовать намерение ACTION_SEND, чтобы перейти непосредственно к facebook или twitter, а не открывать диалоговое окно. Если бы это было так, я мог бы создать свой собственный диалог, и когда они нажимают «Facebook», создавать намерение, специфичное для Facebook, и просто отправлять их полностью в Facebook. То же самое с Твиттером.

ИЛИ это невозможно? Являются ли API Facebook и Twitter единственным способом?

178
задан Community 23 May 2017 в 12:34
поделиться