android读取剪切板的方法,Android获取粘贴板内容
獲取黏貼版內容的相關代碼需要在UiThread上運行,所以沒法即時獲得數據并返回。
最后的解決辦法是,在每次onResume的時候獲取黏貼板的內容并保存,程序需要黏貼板內容時直接返回保存的這個值
public void onResume(Activity page) {
// 因為獲取黏貼板的內容需要在UiThread上運行,所以沒法直接獲取到(因為return的時候runnable里的內容很可能還沒執行完)
// 故改為在OnResume的時候保存粘貼板里的內容,然后直接返回保存的內容
getPasteString();
}
// 從黏貼板獲取數據
private void getPasteString()
{
// 獲取并保存粘貼板里的內容
try {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
ClipboardManager clipboard = (ClipboardManager)activity.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clipData = clipboard.getPrimaryClip();
if (clipData != null && clipData.getItemCount() > 0) {
CharSequence text = clipData.getItemAt(0).getText();
pasteString = text.toString();
Log.d(TAG, "getFromClipboard text=" + pasteString);
}
}
});
} catch (Exception e) {
Log.e(TAG, "getFromClipboard error");
e.printStackTrace();
}
}
// 復制到粘貼板
public class copyToClipboard implements Method {
@Override
public String Execute(String args, String callBack) {
try {
final String argsString = args;
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
ClipboardManager clipboard = (ClipboardManager)activity.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText("text", argsString.trim());
clipboard.setPrimaryClip(clipData);
}
});
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
}
總結
以上是生活随笔為你收集整理的android读取剪切板的方法,Android获取粘贴板内容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zcmu1048
- 下一篇: fpga板子怎么和电脑连_干货教程 |