万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    Unityでクリップボード Android

    Androidの3.0より前(3.0は含まない)ならAPI level 1が使えるのでUnityだけで完結できて楽。
    ※ClipboardManagerはAPI Level1(android.text.ClipboardManager)とAPI Level11(android.content.ClipboardManager)の2種類あるが、
    Android3.0以上で開発する場合はAPI Level11(android.content.ClipboardManager)を使用する事が推奨される。

    public class AndroidTools
    {
    #if UNITY_ANDROID
        private static AndroidJavaClass unityPlayer;
        private static AndroidJavaClass customActivity;
        private static AndroidJavaObject currentActivity;
    
        static AndroidTools ()
        {
            unityPlayer = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
            currentActivity = unityPlayer.GetStatic<AndroidJavaObject> ("currentActivity");
        }
    
        public static int GetVersion()
        {
            string androidVersionStr = iPhoneSettings.systemVersion;
            int topVersionNum = int.Parse (androidVersionStr.Split ('.') [0]);
            return topVersionNum;
        }
    
        // Logs the user out and invalidates the token
        public static void SetClipBoard (string stringText)
        {
            if (Application.platform != RuntimePlatform.Android)
            {
                return;
            }
    
            int topVersionNum = GetVersion();
    
            if (topVersionNum < 3) {
                // API level 1
                // "clipboard" : Context.CLIPBOARD_SERVICE
                AndroidJavaObject oClipboardManager = currentActivity.Call<AndroidJavaObject> ("getSystemService", "clipboard");
                // http://developer.android.com/reference/android/content/Context.html
                oClipboardManager.Call ("setText", stringText);
                currentActivity.Dispose ();
                unityPlayer.Dispose ();
            }
            else  
            {
                return;
            }
        }
    #endif
    }
    

    使い方は、

    AndroidTools.SetClipBoard("入れたい文字");
    

    3.0以降(3.0含む)についてはまた今度で・・。