package com.demo.lib.common.util.common; import android.app.Activity; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; import android.os.Build; import com.demo.lib.common.entity.ClipCopyContent; public class ClipboardUtil { public static ClipCopyContent latestCopyContent; /** * 获取粘贴板内容 * * @param context * @return */ public static String getClipboardContent(Context context) { ClipboardManager clipboardManager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); if (clipboardManager != null) if (clipboardManager.getPrimaryClip() != null) if (clipboardManager.getPrimaryClip().getItemCount() > 0 && clipboardManager.getPrimaryClip().getItemAt(0).getText() != null) return clipboardManager.getPrimaryClip().getItemAt(0).getText().toString(); return ""; } public static void getClipboardContent(final Activity context, final IClipboardContentListener listener) { if (Build.VERSION.SDK_INT >= 29) {//Q以后版本采用 context.getWindow().getDecorView().post(new Runnable() { @Override public void run() { ClipboardManager clipboardManager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); if (clipboardManager != null) if (clipboardManager.getPrimaryClip() != null) if (clipboardManager.getPrimaryClip().getItemCount() > 0 && clipboardManager.getPrimaryClip().getItemAt(0).getText() != null) listener.getContent(clipboardManager.getPrimaryClip().getItemAt(0).getText().toString()); } }); } else { ClipboardManager clipboardManager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); if (clipboardManager != null) if (clipboardManager.getPrimaryClip() != null) if (clipboardManager.getPrimaryClip().getItemCount() > 0 && clipboardManager.getPrimaryClip().getItemAt(0).getText() != null) listener.getContent(clipboardManager.getPrimaryClip().getItemAt(0).getText().toString()); } } public static void emptyClipboard(Context context) { final ClipboardManager manager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); if (manager != null) { try { manager.setPrimaryClip(manager.getPrimaryClip()); manager.setText(null); latestCopyContent = null; } catch (Exception e) { } } } public static void copy(Context context, String content) { ClipboardManager cm = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); cm.setPrimaryClip(ClipData.newPlainText("text", content)); latestCopyContent = new ClipCopyContent(content, System.currentTimeMillis()); } }