通过通知操作复制到剪贴板

时间:2013-01-12 07:52:20

标签: android android-intent android-notifications

我正在尝试将一些文本复制到剪贴板的通知操作(适用于Android 4.1+)。 我阅读了有关复制粘贴功能的参考资料,现在我有了这个:

        ClipboardManager clipboard = (ClipboardManager)
            mContext.getSystemService(Context.CLIPBOARD_SERVICE);
    ClipData clip = ClipData.newPlainText("simple text","Hello, World!");

我不知道如何将它放入将被放入PendingIntent的Intent中。

如果你能给我一些例子并解释一下 - 它会很棒!我是android开发的新手。 提前谢谢。

编辑: 我发现了这个:https://stackoverflow.com/a/12601766/1866009但我不能正确理解。

2 个答案:

答案 0 :(得分:7)

android developer的帮助下,此代码解决了问题:

        BroadcastReceiver brCopy = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            ClipboardManager clipboard = (ClipboardManager)
                    mContext.getSystemService(Context.CLIPBOARD_SERVICE);
            ClipData clip = ClipData.newPlainText("label", "text");
            clipboard.setPrimaryClip(clip);
            Toast.makeText(mContext, "Copied!", Toast.LENGTH_SHORT).show();

        }
    };
    IntentFilter intentFilter = new IntentFilter("com.example.ACTION_COPY");
    mContext.registerReceiver(brCopy, intentFilter);

    Intent copy = new Intent("com.example.ACTION_COPY");
    PendingIntent piCopy = PendingIntent.getBroadcast(mContext, 0, copy, PendingIntent.FLAG_CANCEL_CURRENT);

    mBuilder.addAction(android.R.drawable.ic_menu_copy, "Copy", piCopy);

答案 1 :(得分:4)

查看本教程关于android通知操作:

http://www.vogella.com/articles/AndroidNotifications/article.html

创建pendingIntent时,给它一个自定义意图,由broadcastReceiver接收(在清单中定义,例如here),然后随意做任何事情(例如复制到剪贴板) 。