今天在开发安卓版抖音解析app的时候遇到需要使用到剪切板的情况,于是一番百度,找到可用方法,记录下来,以便查阅,此文仅记录方法,不记录高版本安卓系统权限问题导致的获取失败之解决办法。
- ClipboardManager: 表示一个剪贴板
- ClipData: 剪贴板中保存的所有剪贴数据集(剪贴板可同时复制/保存多条多种数据条目)
- ClipData.Item: 剪贴数据集中的一个数据条目
写剪切板示例
复制
copy_ocr_text.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //获取剪贴板管理器 ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); String ocrText = mTxtViewResult.getText().toString(); // 创建普通字符型ClipData ClipData mClipData = ClipData.newPlainText("OcrText", ocrText); // 将ClipData内容放到系统剪贴板里。 clipboardManager.setPrimaryClip(mClipData); Toast.makeText(TakePictureResult.this, "复制成功!", Toast.LENGTH_SHORT).show(); } });
读剪切板示例
复制
// 获取系统剪贴板 ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); // 获取剪贴板的剪贴数据集 ClipData clipData = clipboard.getPrimaryClip(); if (clipData != null && clipData.getItemCount() > 0) { // 从数据集中获取(粘贴)第一条文本数据 CharSequence text = clipData.getItemAt(0).getText(); System.out.println("text: " + text); }
剪切板数据改变监听
复制
// 获取系统剪贴板 ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); // 添加剪贴板数据改变监听器 clipboard.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener() { @Override public void onPrimaryClipChanged() { // 剪贴板中的数据被改变,此方法将被回调 System.out.println("onPrimaryClipChanged()"); } }); // 移除指定的剪贴板数据改变监听器 // clipboard.removePrimaryClipChangedListener(listener);
评论 (0)