zoukankan      html  css  js  c++  java
  • unity调用系统剪切板功能

    package com.game.utils;
    import android.app.Activity;
    import android.content.ClipData;
    import android.content.ClipDescription;
    import android.content.ClipboardManager;
    import android.content.Context;
    import android.os.Handler;
    import android.os.Looper;
    
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.NetworkInterface;
    import java.util.Collections;
    import java.util.List;
    
    public class GameUtils {
        public byte[] ReadBytes(Activity activity, String path)
        {
            InputStream is = null;
            try {
                is = activity.getAssets().open(path);
            }catch (IOException e){
                e.printStackTrace();
            }
    
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            byte buf[] = new byte [1024];
            int len;
            try {
                while ((len = is.read(buf)) != -1) {
                    outputStream.write
                            (buf, 0, len);
                }
        
                outputStream.close();
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return outputStream.toByteArray();
        }
    
        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);
            if (clipboard != null && clipboard.hasPrimaryClip() && clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) {
                ClipData textCd = ClipData.newPlainText("data", str);
                clipboard.setPrimaryClip(textCd);
    
            }
            handler.getLooper().quit();
        }
    
        // 从剪贴板中获取文本
        public String getTextFromClipboard(final Context activity) throws Exception {
            if(Looper.myLooper() == null)
            {
                Looper.prepare();
                Looper.myLooper();
            }
            StringBuilder res1 = new StringBuilder();
            //Handler handler = new Handler();
            clipboard = (ClipboardManager) activity.getSystemService(Activity.CLIPBOARD_SERVICE);
            //if (clipboard != null && clipboard.hasPrimaryClip() && clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) {
            if (clipboard != null && clipboard.hasPrimaryClip()) {
                ClipData cdText = clipboard.getPrimaryClip();
                ClipData.Item item = cdText.getItemAt(0);
                res1.append(item.getText().toString());
            }
            else
            {
                res1.append("no key");
            }
            //handler.getLooper().quit();
            return res1.toString();
        }
    
        /**
         * 获取MAC地址
         * @return
         */
        public String getAndroidMac(final Context activity) {
            try {
                List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces());
                for (NetworkInterface nif : all) {
                    if (!nif.getName().equalsIgnoreCase("wlan0")) continue;
    
                    byte[] macBytes = nif.getHardwareAddress();
                    if (macBytes == null) {
                        return null;
                    }
    
                    StringBuilder res1 = new StringBuilder();
                    for (byte b : macBytes) {
                        res1.append(String.format("%02X:", b));
                    }
    
                    if (res1.length() > 0) {
                        res1.deleteCharAt(res1.length() - 1);
                    }
                    return res1.toString();
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            return null;
        }
    }
  • 相关阅读:
    移动设备(手机)的唯一ID有哪些
    公司跟你聊企业文化了吗
    C#并行编程-线程同步原语
    C#并行编程-并发集合
    C#并行编程-Task
    C#并行编程-Parallel
    C#并行编程-相关概念
    C#学习系列-this的使用
    C#学习系列-out与ref的区别
    C#学习系列-抽象方法与虚拟方法的区别
  • 原文地址:https://www.cnblogs.com/dabiaoge/p/9016147.html
Copyright © 2011-2022 走看看