安卓剪贴板广播接收器

8

我希望创建一个简单的服务(在后台运行),当用户从浏览器或短信等复制任何内容时,会有一个弹出消息显示这个文本。

我有这段代码,可以在来电时显示弹窗。

public class MyPhoneReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        Bundle extras = intent.getExtras();

        if (extras != null) {

            // this code is for to accept the telephone call
            String state = extras.getString(TelephonyManager.EXTRA_STATE);
            if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
                String phoneNumber = extras.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
                Toast.makeText(context, phoneNumber, Toast.LENGTH_SHORT).show();
            }
        }   
    }
}

还有在 manifest.xml 中的这段代码

<action android:name="android.intent.action.PHONE_STATE"></action>

现在这段代码告诉我们将任何手机状态发送到myreciever类,现在我想从剪贴板管理器中获取文本。是否有任何intent.action状态可以在有人复制文本时调用myreciever类。

任何形式的帮助或代码都将不胜感激。


@Lori,你能帮我吗?你是怎么做到的?因为我找不到。 - Nirav Mehta
2个回答

14

由于现在剪贴板没有Action意图,所以您需要创建一个广播接收器,在应用程序启动或设备首次启动时启动。然后启动一个服务来监视剪贴板的状态。

这是一个完美的Google代码项目,将向您展示确切的操作步骤。

我的剪辑教程


1
哥们儿,你真是个天才啊,太感谢了... :D 这正是我需要的。 - Iori
没问题 =) 很高兴能帮助到您 - coder_For_Life22
嗨,@coder_For_Life22,我无法在您提供的链接中检出代码。您能否分享一个可以下载源代码的链接? - Sudarshan
“my-clips” 太复杂了,我不理解这个项目,请帮帮我。我需要这个 :( 请给我一个简单的例子。 - Milad Ghiravani

0

我同意“coder_For_Life22”的观点:“由于现在没有剪贴板的操作意图,...”。
我找到了两种监控“剪贴板”的方法:
1-像“coder_For_Life22”所说的那样。
2-使用“ClipboardManager.OnPrimaryClipChangedListener()”方法。
但是它们都存在问题
在第一种方式中,如果用户复制一个单词,例如“Text”,然后(即使过了一段时间并在另一个应用程序中)再次复制相同的单词,您无法检测到它。
第二种方法是使用Android 3.0 API 11及更高版本的解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接