1.获取剪切板口令
onResume()中运行
/**
* 判断是否有复制口令
*/
public void gangUpInvite() {
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
//无数据时直接返回
if (clipboard == null || !clipboard.hasPrimaryClip() || clipboard.getPrimaryClip().getItemCount() == 0) {
return;
}
//如果是文本信息
if (clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) {
ClipData cdText = clipboard.getPrimaryClip();
//自己app复制到剪切版设置的标识
if (cdText.getDescription().toString().contains("app标识")) {
return;
}
ClipData.Item item = cdText.getItemAt(0);
//此处是TEXT文本信息
if (item != null && item.getText() != null && !TextUtils.isEmpty(item.getText())) {
String str = item.getText().toString();
//处理自己事务
//处理完成清空剪切板
clearClipboard();
}
}
}
/**
* 清空剪贴板内容
*/
public void clearClipboard() {
ClipboardManager manager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
if (manager != null) {
try {
manager.setPrimaryClip(manager.getPrimaryClip());
manager.setText(null);
} catch (Exception e) {
}
}
}
2.复制剪切板。
ClipboardManager cm = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE);
//第一个传参是自己设置的标识,用于判断是不是自己要分享出去的剪切板内容。
//第二个传参是自己设置的剪切板内容。
ClipData clipData = ClipData.newPlainText("app标识","复制内容");
cm.setPrimaryClip(clipData);
3.剪切板复制内容类型。
// 对应 ClipData newPlainText(label, text) 的 MimeType
public static final String MIMETYPE_TEXT_PLAIN = "text/plain";
// 对应 ClipData.newHtmlText(label, text, htmlText) 的 MimeType
public static final String MIMETYPE_TEXT_HTML = "text/html";
// 对应 ClipData.newUri(cr, label, uri) 的 MimeType
public static final String MIMETYPE_TEXT_URILIST = "text/uri-list";
// 对应 ClipData.newIntent(label, intent) 的 MimeType
public static final String MIMETYPE_TEXT_INTENT = "text/vnd.android.intent";