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含む)についてはまた今度で・・。