miduo_client/Assets/LuaFramework/Scripts/KTSDK/Android/AndroidProxy.cs

140 lines
5.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
* 问题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);
// }
//}
}
}