参考博客 http://www.cnblogs.com/xiaozefeng/p/Unity_Android_IOS.html?utm_source=tuicool&utm_medium=referral
我参照 枫露霜阳 大牛的博客分别实现了两种调用方法,不过由于版本更新有些代码需要调整,特此整理。
unity5.3.5 ,as2.1.2
这是在unity中的代码,ios的调用也是参考枫露霜阳大牛实现的,不过忘了写博客。看以后能不能补上。
//剪切文本
public static void CopyToClipboard(string input)
{
#if UNITY_ANDROID
// 对Android的调用
AndroidJavaObject androidObject = new AndroidJavaObject("ClipboardTools");
AndroidJavaObject activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
if (activity == null)
return ;
// 复制到剪贴板
androidObject.Call("copyTextToClipboard", activity, input);
// 从剪贴板中获取文本
// String text = androidObject.Call<String>("getTextFromClipboard");
#elif UNITY_IPHONE
//调用clipboard.h中的接口
_copyTextToClipboard (input);
Debug.LogError ("CopyToClipboard_______"+input);
#endif
}
因为我只是需要用到将input 放到安卓剪切板上去的功能,所以其他功能请参考枫露霜阳大牛的原博客。
下面的是在as中的代码位置,因为我不会打包jar文件,就直接写在as里面了。
下面是ClipboardTools类。做了简单的修改,因为原代码的话运行会一直报错
线程问题,修改后的代码如下:
import android.content.ClipboardManager;
import android.app.Activity;
import android.content.Context;
import android.content.ClipData;
import android.content.ClipDescription;
import android.os.Looper;
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();
}
clipboard = (ClipboardManager) activity.getSystemService(Activity.CLIPBOARD_SERVICE);
ClipData textCd = ClipData.newPlainText("data", str);
clipboard.setPrimaryClip(textCd);
}
}
好了,修改的这么多。感谢枫露霜阳。感谢小杜同学给我的指导,虽说走了些许弯路, = =。