Unity3d 复制文字到剪切板及存储图像到相册

出自转载
方法1

https://www.cnblogs.com/lan-yt/p/6934155.html

游戏中里开发分享功能时用到两个小功能:1.复制一个链接到剪切板供在其他应用粘贴分享使用,2.保存一张二维码图像到相册供发送给其他应用用于分享。但是在unity中无法完成,需要分别开发相应的插件。
Android 部分:
使用android studio生成jar包(注意:其中com.ztgame.ztmyseabed 为unity中playersettings里面设置的游戏bundle id),ClipboardTools.java 代码如下

package com.XXXXXXX.base; //建立工程时设置的包名

import android.app.Activity;
import android.content.ClipData;
import android.content.ClipDescription;
import android.content.ClipboardManager;
import android.content.Context;

public class ClipboardTools {
    public static ClipboardManager clipboard = null;
    // 向剪贴板中添加文本
    public void copyTextToClipboard(final Context activity, final String str) throws Exception {
        clipboard = (ClipboardManager) activity.getSystemService(Activity.CLIPBOARD_SERVICE);
        ClipData textCd = ClipData.newPlainText("data", str);
        clipboard.setPrimaryClip(textCd);
    }

    // 从剪贴板中获取文本
    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";
    }
}

Unity部分:

public void CopyTextToClipboard(string code)
{
#if UNITY_EDITOR
#elif UNITY_IPHONE
#elif UNITY_ANDROID
        AndroidJavaClass playerCls = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject activity = playerCls.GetStatic<AndroidJavaObject>("currentActivity");
        AndroidJavaObject ShareManager = new AndroidJavaObject("com.XXXXXXX.base.ClipboardTools");
        ShareManager.Call("copyTextToClipboard", activity, code);
#endif
}

这边只是引用文章的andriod部分,需要其他内容的可以去查看原文章
关于如何打包aar给Untiy使用的可以参考我之前的
《SDK接入Unity分享总结》

https://blog.youkuaiyun.com/qq_22038235/article/details/108322660

方法2:
Unity的开发中,有时候我们会有需求,希望将Unity程序中的字符串保存到系统的剪贴板中,可以在其它的程序中粘贴。不过我们在搜索引擎中搜索到的方法,都是需要去写Obj-c或者Java原生代码的解决方案。
其实Unity本身有个接口可以方便的实现该功能。

UnityEngine.GUIUtility.systemCopyBuffer = "要复制的内容";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值