unity调用Android剪切板基于Android studio

本文介绍如何在Unity中实现跨平台(Android与iOS)的剪贴板操作功能,包括复制文本到剪贴板的方法,并提供具体的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考博客 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);
    }
}
好了,修改的这么多。感谢枫露霜阳。感谢小杜同学给我的指导,虽说走了些许弯路, = =。


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值