Как мы знаем, считывание данных с помощью Clipboard Manager в фоновом режиме было остановлено Google в android Q, поэтому мне все равно нужно вставлять данные, скопированные непосредственно в текст редактирования, когда пользователь возвращается к действиям без добавления пользователя, вставки и без вставки кнопка.
Проблема в том, что при попытке прочитать данные с помощью getPrimaryClip()
возвращается null
.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_copy_and_paste);
ed_editText = findViewById(R.id.ed_editText);
}
@Override
protected void onResume() {
super.onResume();
getCopy()
}
private void getCopy() {
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
if (clipboard != null && clipboard.hasPrimaryClip() && clipboard.getPrimaryClip() != null) {
CharSequence clip = clipboard.getPrimaryClip().getItemAt(0).coerceToText(CopyAndPasteActivity.this).toString();
ed_editText.setText(clip.toString());
}
}
XML
<EditText
android:id="@+id/ed_editText"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginLeft="24dp"
android:layout_marginStart="24dp"
android:maxLines="1"
android:lines="1"
android:focusable="true"
android:textSize="14sp"
android:inputType="text"
android:focusableInTouchMode="true"
android:layout_weight="1"
android:background="@null" >
<requestFocus />
</EditText>