如何在Android应用程序中自动粘贴文本或URL

sd2nnvve  于 2023-05-05  发布在  Android
关注(0)|答案(1)|浏览(161)

我想在我的Android应用程序中实现一个功能,当我从任何地方复制一些文本或链接(从消息,WhatsApp或Instagram帖子链接)在我的手机和打开我的应用程序,所以我希望文本自动粘贴如果文本在我的剪贴板.
要求:
1.打开insta app &复制帖子链接
1.返回我的应用程序并自动粘贴复制的链接
如果有人知道这件事那就帮帮我
先谢谢你了。

9rnv2umw

9rnv2umw1#

我找到了在应用程序启动时自动粘贴复制文本的解决方案。
我添加了一个按钮,当按钮被点击,然后我从剪贴板粘贴文本。
我们不能直接在onCreate()中使用粘贴功能,所以我自动化按钮点击并将按钮可见性设置为gone,因为我不想向用户显示按钮。
所以我添加了一个处理程序,它在2秒(2000毫秒)后触发,在处理程序中我添加了button.perforClick()。
下面是解决方案代码。

public class MainActivity extends AppCompatActivity {

TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    textView = findViewById(R.id.textView);
    Button button = findViewById(R.id.button);
    
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            button.performClick();
        }
    }, 2000);

    button.setOnClickListener(view -> {
        pasteText();
    });
}

private void pasteText() {
    ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
    String pasteData = "";

    // If it does contain data, decide if you can handle the data.
    if (!(clipboard.hasPrimaryClip())) {

    } else if (!(clipboard.getPrimaryClipDescription().hasMimeType(MIMETYPE_TEXT_PLAIN))) {

        // since the clipboard has data but it is not plain text

    } else {

        //since the clipboard contains plain text.
        ClipData.Item item = clipboard.getPrimaryClip().getItemAt(0);

        // Gets the clipboard as text.
        pasteData = item.getText().toString();

        textView.setText(pasteData);
        Log.i("PastedText", "text: " + pasteData);
    }
}

相关问题