140 lines
5.2 KiB
C#
140 lines
5.2 KiB
C#
/**
|
||
* 问题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<AndroidJavaObject>("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<bool>("IsSupportExit");
|
||
}
|
||
//sdk 获取设备标识
|
||
public override string GetDeviceID()
|
||
{
|
||
return currentActivity.Call<string>("GetDeviceID");
|
||
}
|
||
//sdk 获取IMEI
|
||
public override string GetIMEICode()
|
||
{
|
||
return currentActivity.Call<string>("GetIMEICode");
|
||
}
|
||
//sdk获取支付订单号
|
||
public override string GetPayOrderID()
|
||
{
|
||
return currentActivity.Call<string>("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);
|
||
// }
|
||
//}
|
||
}
|
||
}
|