1.首先新建一個android工程,ClipboardTools類不用繼承任何類,包名com.androidclicp.clip,然后在該類中填寫如下代碼(jdk等級4.0版本以上,不然會報錯)
public class ClipboardTools {
public static ClipboardManager clipboard = null;
// 向剪貼板中添加文本
public void copyTextToClipboard(final Context activity, final String str) throws Exception
{
if(Looper.myLooper() == null)
{
Looper.prepare();
}
Handler handler = new Handler();
clipboard = (ClipboardManager) activity.getSystemService(Activity.CLIPBOARD_SERVICE);
ClipData textCd = ClipData.newPlainText("data", str);
clipboard.setPrimaryClip(textCd);
handler.getLooper().quit();
}
// 從剪貼板中獲取文本
public String getTextFromClipboard() {
if (clipboard != null && clipboard.hasPrimaryClip()
&& clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) {
ClipData cdText = clipboard.getPrimaryClip();
ClipData.Item item = cdText.getItemAt(0);
return item.getText().toString();
}
return "null";
}
}
寫完就ok了,然后把該工程導出jar包,只需要導出你所寫的這個類就可以了
2.然后在unity工程中新建一個Plugins/Android/bin, 然后把你所寫的jar包導入即可,在unity新建一個腳本,來使用jar包中的東西,
此時只寫功能函數,具體腳本不寫了,如下:
#if UNITY_ANDROID
AndroidJavaObject androidObject = new AndroidJavaObject("com.androidclicp.ClipboardTools");
AndroidJavaObject activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
if (activity == null)
return;
// 復制到剪貼板
androidObject.Call("copyTextToClipboard", activity, qq.text);
// 從剪貼板中獲取文本
string text = androidObject.Call<string>("getTextFromClipboard");
Debug.Log(text + "------------------------");
#endif
導進去的報名com.androidclicp.clip是指你android工程中的報名,而不是你導出之后自己定義的那個包名,這個包名是隨便去的,unity中引用的還是android中的包名,具體講就是你寫的那個android腳本的命名空間。
3,使用unity發布andrid版本的時候也要在設置中改一下最小sdk版本,這樣就ok了,源代碼demo網盤鏈接http://pan.baidu.com/s/1gfyUV3X