package com.lcjian.library.util.common;
|
|
import android.app.Activity;
|
import android.content.ClipData;
|
import android.content.ClipboardManager;
|
import android.content.Context;
|
import android.os.Build;
|
|
import com.lcjian.library.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());
|
}
|
}
|