ClipboardManager.OnPrimaryClipChangedListener не вызывается после копирования текста из общего доступа на некоторых устрJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 ClipboardManager.OnPrimaryClipChangedListener не вызывается после копирования текста из общего доступа на некоторых устр

Сообщение Anonymous »

Я работаю над приложением для Android, в котором использую намерение поделиться текстом. Если пользователь копирует текст вместо того, чтобы делиться им через приложение, я хочу определить, когда изменяется содержимое буфера обмена, с помощью ClipboardManager.OnPrimaryClipChangedListener.
Однако на некоторых устройствах обратный вызов onPrimaryClipChanged не работает. вызывается, когда текст копируется из намерения поделиться. Эта проблема возникает не на всех устройствах.
Вот соответствующий код:

Код: Выделить всё

private void setClipBoardManager() {
ClipboardManager clipboardManager = (ClipboardManager) getApplicationContext().getSystemService(Context.CLIPBOARD_SERVICE);
clipboardManager.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener() {
@Override
public void onPrimaryClipChanged() {
try {
CharSequence copiedData = clipboardManager.getPrimaryClip().getItemAt(0).getText();
Log.d(TAG, "onPrimaryClipChanged: " + copiedData);
} catch (RuntimeException ex) {
Log.e(TAG, ex.getLocalizedMessage(), ex);
ex.printStackTrace();
}
}
});
}

Код: Выделить всё

public void share_text(String title, String subject, String text) {
int requestCode = 111;
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
sharingIntent.putExtra(Intent.EXTRA_TEXT, text);

PendingIntent pi = PendingIntent.getBroadcast(this, requestCode, new Intent(this, ShareBroadCast.class),
PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT);
sharingIntent = Intent.createChooser(sharingIntent, title, pi.getIntentSender());

startActivity(sharingIntent);
}

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

Подробнее здесь: https://stackoverflow.com/questions/793 ... -text-from
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»