gpt4 book ai didi

android - 从任何地方复制文本时打开我的应用程序

转载 作者:行者123 更新时间:2023-12-04 01:59:56 25 4
gpt4 key购买 nike

我要打开我的应用程序并显示复制的文本每当我从android中的任何地方复制文本时。我怎样才能做到这一点?

  public class MainActivity extends Activity
{

Button paste;
TextView display;
private ClipData clipdata;
private android.content.ClipboardManager mgr;

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

paste = (Button) findViewById(R.id.paste);
display = (TextView) findViewById(R.id.textView1);

mgr = (android.content.ClipboardManager) getSystemService(CLIPBOARD_SERVICE);

paste.setOnClickListener(new OnClickListener()
{
public void onClick(View arg0)
{

try
{
clipdata = mgr.getPrimaryClip();
ClipData.Item item = clipdata.getItemAt(0);

String text = item.getText().toString();

display.setText(display.getText() + "\n" + text);

Toast.makeText(getApplicationContext(), "Text Pasted",
Toast.LENGTH_SHORT).show();
} catch (Exception e)
{
Toast.makeText(getApplicationContext(),
"Error : " + e.getMessage(), Toast.LENGTH_SHORT)
.show();
}
}
});
}

}
  • 我尝试使用 Intent 打开应用程序
  • 我正在使用安卓工作室
  • 我需要做哪些改变
  • 最佳答案

    以下是一个工作代码,当您在其他任何地方复制某些内容时,它会启动您的应用程序,它使用 剪贴板监控服务 首次启动应用程序时在后台运行的服务:

    list .xml 将以下行放在 <application> 下标签 :

    <service android:name=".ClipboardMonitorService" />

    然后在 主要 Activity 类在 onCreate() 中启动服务如下:
    startService(new Intent(this, ClipboardMonitorService.class));

    剪贴板监控服务 类(class):
    package com.kushal.webtest;

    import android.app.Service;
    import android.content.ClipData;
    import android.content.ClipboardManager;
    import android.content.Intent;
    import android.os.IBinder;



    public class ClipboardMonitorService extends Service {

    private ClipboardManager mClipboardManager;

    @Override
    public void onCreate() {
    super.onCreate();

    mClipboardManager =
    (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
    mClipboardManager.addPrimaryClipChangedListener(
    mOnPrimaryClipChangedListener);

    System.out.println("Service started running..");
    }

    @Override
    public void onDestroy() {
    super.onDestroy();

    if (mClipboardManager != null) {
    mClipboardManager.removePrimaryClipChangedListener(
    mOnPrimaryClipChangedListener);
    }
    }

    @Override
    public IBinder onBind(Intent intent) {

    return null;
    }

    private ClipboardManager.OnPrimaryClipChangedListener mOnPrimaryClipChangedListener =
    new ClipboardManager.OnPrimaryClipChangedListener() {
    @Override
    public void onPrimaryClipChanged() {

    String charSequence = mClipboardManager.getPrimaryClip().getItemAt(0).getText().toString();
    System.out.println("Copied Link : ====================" + charSequence);

    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
    intent.putExtra("copiedLink", charSequence);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
    }
    };



    }

    关于android - 从任何地方复制文本时打开我的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47966139/

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