Android 剪切板相关

本文详细介绍了Android中的ClipboardManager类,包括其主要方法如设置和获取剪贴板内容、监听剪贴板变化,以及注意事项如安全性和隐私限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android 剪切板相关

本篇文章简单介绍android中的ClipboardManager.

1:简介

ClipboardManager是android中用于管理剪切板一个类.它允许应用程序读取和写入剪切板数据,包括文本,图片等.
ClipboardManager类提供了以下几个主要方法:
setPrimaryClip(ClipData clip):将指定的ClipData对象设置为剪贴板的内容。
getPrimaryClip():获取剪贴板的当前内容,返回一个ClipData对象。
hasPrimaryClip():检查剪贴板是否有内容。
getText():从剪贴板中获取文本数据。
setText(CharSequence text):将指定的文本设置到剪贴板中。

2: 获取实例

获取实例也很简单.如下:

ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);

3: 获取剪切板内容

获取剪切板文本数据:

public static String getCopyText(Context context) {
    if (clipboardManager == null) {
    clipboardManager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
    }
    if (null == clipboardManager) return null;
    ClipData clipData = clipboardManager.getPrimaryClip();
    if (clipData != null && clipData.getItemCount() > 0) {
    return clipData.getItemAt(0).getText().toString();
    }
    return null;
}

getPrimaryClip()方法获取剪切板的当前内容,返回一个ClipData对象.

4: 设置剪切板内容

  1. 设置剪切板文字:

    public static void setCopyText(Context context,String s) {
        try {
            if (clipboardManager == null) {
                clipboardManager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
            }
            if (null == clipboardManager) return;
    
            ClipData clipData = ClipData.newPlainText(null, s);
            clipboardManager.setPrimaryClip(clipData);
        } catch (Throwable e) {
            Log.e("xxxxx", "setCopyText: ", e);
        }
    
    }
    

5: 监听剪切板

 private ClipboardManager.OnPrimaryClipChangedListener clipChangedListener = () -> {
        ClipData clipData = clipboardManager.getPrimaryClip();
        String clipStr = "";
        if (clipData != null && clipData.getItemCount() > 0) {
            clipStr = clipData.getItemAt(0).getText().toString();
        }
        Log.i("xxxxx", "onPrimaryClipChanged: " + clipStr);
    };

clipboardManager.addPrimaryClipChangedListener(clipChangedListener);

但是addPrimaryClipChangedListener只能监听当前应用程序剪切板内容的变化,无法监测其他应用,至于原因就是为了安全性和隐私.

6:移除监听

if (clipboardManager != null) {
     clipboardManager.removePrimaryClipChangedListener(clipChangedListener);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值