zoukankan      html  css  js  c++  java
  • unity中调用android的剪切板

    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

  • 相关阅读:
    第三方驱动备份与还原
    Greenplum 解决 gpstop -u 指令报错
    yum安装(卸载)本地rpm包的方法(卸载本地安装的greenplum 5.19.rpm)
    Java JUC(java.util.concurrent工具包)
    netty 详解(八)基于 Netty 模拟实现 RPC
    netty 详解(七)netty 自定义协议解决 TCP 粘包和拆包
    netty 详解(六)netty 自定义编码解码器
    netty 详解(五)netty 使用 protobuf 序列化
    netty 详解(四)netty 开发 WebSocket 长连接程序
    netty 详解(三)netty 心跳检测机制案例
  • 原文地址:https://www.cnblogs.com/xwwFrank/p/6020837.html
Copyright © 2011-2022 走看看