gpt4 book ai didi

android - 如何在Android Q(10)中以编程方式访问剪贴板数据?

转载 作者:行者123 更新时间:2023-12-01 12:03:22 26 4
gpt4 key购买 nike

正如我们所知,在后台通过剪贴板管理器读取数据已被 Google 在 android Q 中停止,所以无论如何我都需要在用户返回 Activity 时粘贴直接复制到编辑文本中的数据,而无需用户进行粘贴且没有粘贴按钮。

问题是尝试使用 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>

最佳答案

您应该访问 Window.Callback.onWindowFocusChanged(true) 中的剪贴板,因为那是您获得输入焦点的时刻,这是在 Android 10 (Q) 中读取剪贴板所必需的。您还不一定在 onResume 中有输入焦点.

关于android - 如何在Android Q(10)中以编程方式访问剪贴板数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59903001/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com