Однако на некоторых устройствах обратный вызов 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