Android: Как прослушать события longclick в любой текстовой области в других приложениях?
Я пытаюсь разработать приложение для Android, которое предоставляет дополнительную опцию при вставке данных в любое место.
Я знаю, как захватывать данные из буфера обмена. Мне просто нужно знать, как прослушивать события longclick в любой текстовой области в других приложениях, таких как браузеры, Facebook, Twitter и т. Д., Чтобы мое приложение запускалось, давая пользователю возможность вставить данные в буфер обмена после обработки это, в качестве альтернативы, чтобы вставить его обычным способом.
2 ответа
С тех пор как вы задали этот вопрос, мы прошли долгий путь, но на самом деле есть два способа сделать это:
призыв к
ClipboardManager.addPrimaryClipChangedListener()
и зарегистрироваться в качестве слушателя, когда пользователь копирует текст. можно найти в документацииДобавить
ACTION_PROCESS_TEXT
Фильтр намерений, чтобы пользователь мог выбрать созданное вами действие / запустить ваше приложение. Больше можно найти в этом блоге
Вам нужно добавить фильтр намерений к рассматриваемой деятельности, например, так:
<activity android:name=".PostActivity">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
Тогда вам просто нужно обработать данные, отправленные вам в целях вашей деятельности
Uri data = getIntent().getData();
Bundle extras = getIntent().getExtras();
String messageText = "";
if (data != null) {
messageText = data.toString();
} else if (extras != null) {
messageText = extras.getString(Intent.EXTRA_TEXT);
}