/** * 问题1:参数传递最好改用json...懒得去搞了!!! * 问题2:安卓和IOS端所需的相关参数竟然不同,MMP!!!,凑合用不改了。。。 */ using System.Collections; using UnityEngine; using System.IO; using System; namespace KTSDK.Android { public class AndroidProxy : Proxy { private static AndroidJavaObject currentActivity; private const string CLS_UNITY_PLAYER = "com.unity3d.player.UnityPlayer"; public AndroidProxy() { var player = new AndroidJavaClass(CLS_UNITY_PLAYER); currentActivity = player.GetStatic("currentActivity"); } public override void Init(KTSDKInitArgs args) { currentActivity.Call("InitLaunch", args.appid, args.appkey, args.privateKey); } public override void Login() { currentActivity.Call("Login"); } public override void Exit() { currentActivity.Call("BackPressed"); } public override void SubmitExtraData(KTSDKSubmitExtraDataArgs args) { currentActivity.Call("SubmitExtraData", args.dataType, args.serverID, args.serverName, args.zoneID, args.zoneName, args.roleID, args.roleName, args.roleLevel, args.guildID, args.Vip, args.moneyNum, args.roleCreateTime, args.roleLevelUpTime); } public override void Pay(KTSDKPayArgs args) { currentActivity.Call("Pay",args.productId, args.productName, args.productDesc, args.price, args.ratio, args.buyNum, args.coinNum, args.zoneId, args.serverID, args.serverName, args.accounted, args.roleID, args.roleName, args.roleLevel, args.vip, args.guildID, args.payNotifyUrl, GameLogic.Util.Base64Encode(args.extension)); } public override bool IsSupportExit() { return currentActivity.Call("IsSupportExit"); } //sdk 获取设备标识 public override string GetDeviceID() { return currentActivity.Call("GetDeviceID"); } //sdk 获取IMEI public override string GetIMEICode() { return currentActivity.Call("GetIMEICode"); } //sdk获取支付订单号 public override string GetPayOrderID() { return currentActivity.Call("GetOrderID"); } //SDK截屏 public override void ShotCapture() { StartCoroutine(ScreenShotPNG()); } IEnumerator ScreenShotPNG() { yield return new WaitForEndOfFrame(); //DateTime now = DateTime.Now; //string times = now.ToString("yyyyMMddHHmmss"); //string filename = times + ".png"; int width = Screen.width; int height = Screen.height; Texture2D screenShot = new Texture2D(width, height, TextureFormat.RGB24, false); screenShot.ReadPixels(new Rect(0, 0, width, height), 0, 0); screenShot.Apply(); byte[] bytes = screenShot.EncodeToPNG(); Destroy(screenShot); currentActivity.Call("SendScreenshotData", bytes); //string destination = "/sdcard/DCIM/Capture"; //if (!Directory.Exists(destination)) //{ // Directory.CreateDirectory(destination); //} //string Path_save = destination + "/" + filename; //File.WriteAllBytes(Path_save, bytes); //string[] paths = new string[1]; //paths[0] = Path_save; //ScanFile(paths); } //刷新图片,显示到相册中 //void ScanFile(string[] path) //{ // using (AndroidJavaObject Conn = new AndroidJavaObject("android.media.MediaScannerConnection", currentActivity, null)) // { // Conn.CallStatic("scanFile", currentActivity, path, null, null); // } //} } }