您的位置:首页 > 移动开发 > Android开发

Android 剪切板的使用

2016-03-14 00:00 441 查看
摘要: Android 获取剪切板中的内容和添加数据至剪切板中的实现方法

Android剪切板的使用:

一.添加内容:

String base64String = "我要复制的内容,放入剪切板中了";
//从Android系统中调用剪切板的服务
ClipboardManager clipboardManager = (ClipboardManager)
getSystemService(Context.CLIPBOARD_SERVICE);
//在剪切板中放入要传递的数据
clipboardManager.setText(base64String);


二.读取内容:

import android.content.ClipData;
import android.content.ClipDescription;
import android.content.ClipboardManager;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;

import com.ly.sxh.data.LoaderApp;

/**
* Created by SRain on 2016/3/4.
* <p/>
* 读取剪切板中内容
*/
public class ClipboardUtils {
public static final String MIME_TYPE_CONTACT = "vnd.android.cursor.item/vnd.xiaoma.contact";

public static String getClipboard(Context context) {
String result = "";
LoaderApp app = (LoaderApp) context.getApplicationContext();
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(context.CLIPBOARD_SERVICE);
ClipData.Item item = null;

//无数据时直接返回
if (!clipboard.hasPrimaryClip()) {
app.shortToast("剪贴板中无数据");
return result;
}

//如果是文本信息
if (clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) {
ClipData cdText = clipboard.getPrimaryClip();
item = cdText.getItemAt(0);
//此处是TEXT文本信息
if (item.getText() == null) {
return result;
} else {
String str = item.getText().toString();
if (str.contains("#乐游口令#")) {
result = analysisVerify(context, str);
}
}
} else if (clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_INTENT)) {
//此处是INTENT
item = clipboard.getPrimaryClip().getItemAt(0);
Intent intent = item.getIntent();
context.startActivity(intent);
} else if (clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_URILIST)) {
//此处是URI内容
ContentResolver cr = context.getContentResolver();
ClipData cdUri = clipboard.getPrimaryClip();
item = cdUri.getItemAt(0);
Uri uri = item.getUri();
if (uri != null) {
String mimeType = cr.getType(uri);
if (mimeType != null) {
if (mimeType.equals(MIME_TYPE_CONTACT)) {
Cursor pasteCursor = cr.query(uri, null, null, null, null);
if (pasteCursor != null) {
if (pasteCursor.moveToFirst()) {
//此处对数据进行操作就可以了,前提是有权限
}
}
pasteCursor.close();
}
}
}
}
return result;
}

/**
* 清除剪切板中的内容,暂时用空字符代替
* TODO
* @param context
*/
public static void clearClipboard(Context context) {
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(context.CLIPBOARD_SERVICE);
ClipData.Item item = null;

//无数据时直接返回
if (!clipboard.hasPrimaryClip()) {
return;
}

//如果是文本信息
if (clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) {
String base64String = "";
//从Android系统中调用剪切板的服务
ClipboardManager clipboardManager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
//在剪切板中放入要传递的数据
clipboardManager.setText(base64String);
}
}

private static String analysisVerify(Context context, String message) {
String[] strs = message.split("进群口令");
LoaderApp app = (LoaderApp) context.getApplicationContext();
char[] msgs = strs[strs.length - 1].toCharArray();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < msgs.length; i++) {
if ('0' <= msgs[i] && msgs[i] <= '9') {
sb.append(msgs[i]);
}
}
return sb + "";
}
}


三、工具类代码

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  工具类 剪切板