#if UNITY_ANDROID using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Touka { /// /// TKG Native SDK Android platform interface call /// public class TKGNativeInterfaceAndroid : TKGNativeInterface { private AndroidJavaObject jo; public TKGNativeInterfaceAndroid() { // java interface class using (AndroidJavaClass jc = new AndroidJavaClass("com.touka.tkg.TKGProxyJava")) { jo = jc.CallStatic("getInstance"); } } private T SDKCall(string _method, params object[] _param) { try { return jo.Call(_method, _param); } catch (Exception e) { Debug.LogError(e); } return default(T); } private void SDKCall(string _method, params object[] _param) { try { jo.Call(_method, _param); } catch (Exception e) { Debug.LogError(e); } } #region init /// /// init /// /// public override void Init(Action _initCallback = null) { TKGDebugger.LogDebug("init ----- 00"); base.Init(_initCallback); TKGDebugger.LogDebug("init ----- 01"); SetBannerAdCallback(new AndroidBannerADTKGAdCallback()); TKGDebugger.LogDebug("init ----- 01 ------- a"); setInterstitalAdCallback(new AndroidInterADTKGAdCallback()); TKGDebugger.LogDebug("init ----- 01 ------- b"); SetRewardAdCallback(new AndroidRewardADTKGAdCallback()); TKGDebugger.LogDebug("init ----- 01 ------- c"); SetSDKCommonCallback(new AndroidTKGCommonCalllback()); TKGDebugger.LogDebug("init ----- 01 ------- d"); SDKCall("init", new AndroidProxyCallback()); TKGDebugger.LogDebug("init ----- 02"); } #endregion /// /// Get Channel /// /// public override string GetChannel() { #if UNITY_EDITOR return "AndroidRoot"; #endif return SDKCall("getChannel"); } #region Ads #region Ads Show /// /// show native ad /// TODO 这个参数值需要修改成跟ios获取位置坐标宽高一样的方式 /// showPoint 展示广告点位 /// /// public override void ShowNative(string nativePos, float x, float y, float width, float height) { SDKCall("showNative", nativePos, (int)x, (int)y, (int)width, (int)height); } /// /// hide native ad /// public override void HideNative() { SDKCall("hideNative"); } /// /// Is Ready Native /// public override bool IsNativeReady() { bool isReady = SDKCall("isNativeReady"); return isReady; } #region Ads Show /// /// Show banner Ad /// /// banner pos, 1:Top;2:Bottom public override void showBannerAd(int _pos) { SDKCall("showBannerAd", _pos); } /// /// Hide Banner Ad /// public override void hideBannerAd() { SDKCall("hideBannerAd"); } /// /// Show Interstitial Ad /// public override void showInterstitialAd() { SDKCall("showInterstitialAd"); } /// /// Show Interstitial Ad /// /// public override void showInterstitialAd(string _adPos, IVADType _IvType = IVADType.IV1) { SDKCall("showInterstitialAd", _adPos, (int)_IvType); } /// /// Show Reward Ad /// /// /// public override void showRewardAd(string _adPos, int _itemCount = -1) { SDKCall("showRewardAd", _adPos, _itemCount); } /// /// Show Reward Ad /// /// /// /// public override void showRewardAd(string _adPos, int _itemCount, Dictionary _extraEvent) { SDKCall("showRewardAd", _adPos, _itemCount, _extraEvent); } /// /// Show Video Ad /// /// /// public override void showVideoAd(string _adPos, int _itemCount = -1) { SDKCall("showVideoAd", _adPos, _itemCount); } #endregion #region Ads isready /// /// banner isReady /// /// public override bool isBannerAdReady() { bool isReady = SDKCall("isBannerAdReady"); return isReady; } /// /// Interstitial isReady /// /// public override bool isInterstitialAdReady() { bool isReady = SDKCall("isInterstitialAdReady"); return isReady; } /// /// Reward isReady /// /// public override bool isRewardAdReady() { bool isReady = SDKCall("isRewardAdReady"); return isReady; } /// /// FullScreen isReady /// /// public override bool isVideoAdReady() { bool isReady = SDKCall("isVideoAdReady"); return isReady; } #endregion #region Set ads callback /// /// Set Banner Ad Callback /// /// public override void SetBannerAdCallback(AndroidBannerADTKGAdCallback _bannerCallback) { SDKCall("setBannerAdCallback", _bannerCallback); } /// /// Set Interstital Ad Callback /// /// public override void setInterstitalAdCallback(AndroidInterADTKGAdCallback _interCallback) { SDKCall("setInterstitalAdCallback", _interCallback); } /// /// Set reward Ad Callback /// /// public override void SetRewardAdCallback(AndroidRewardADTKGAdCallback _rewardCallback) { SDKCall("setRewardAdCallback", _rewardCallback); } /// /// Set video Ad Callback(full screen ad, reward ad with no reward callback) /// /// public override void setVideoAdCallback(AndroidInterADTKGAdCallback _videoCallback) { SDKCall("setVideoAdCallback", _videoCallback); } #endregion #region load ads /// /// load interstitial ad /// (retry 3 times, per time interval 10s) /// public override void loadInterstitialAD() { SDKCall("loadInterstitialAD"); } /// /// load reward ad /// (retry 3 times, per time interval 10s) /// public override void loadRewardAD() { SDKCall("loadRewardAD"); } /// /// load video ad /// (retry 3 times, per time interval 10s) /// public override void loadVideoAD() { SDKCall("loadVideoAD"); } #endregion #endregion #region Log Event #region Normal /// /// onEvent /// /// /// public override void onEvent(string _eventName) { SDKCall("onEvent", _eventName); } /// /// onEvent /// /// /// /// /// public override void onEvent(string _eventName, string _key01, string _value01) { SDKCall("onEvent", _eventName, _key01, _value01); } /// /// onEvent /// /// /// /// /// /// /// public override void onEvent(string _eventName, string _key01, string _value01, string _key02, string _value02) { SDKCall("onEvent", _eventName, _key01, _value01, _key02, _value02); } /// /// onEvent /// /// /// public override void onEvent(string _eventName, Dictionary _keyValues) { SDKCall("onEvent", _eventName, Analytics.ToJavaHashMap(_keyValues)); } #endregion #region Level Event /// /// Level Start /// /// public override void LevelStart(string _levelId) { SDKCall("levelStart", _levelId); } /// /// Level end /// /// public override void LevelEnd(string _levelId, bool _isSucc) { SDKCall("levelEnd", _levelId, _isSucc); } #endregion #region Tracking Event /// /// Log Tracking Event /// /// public override void LogTrackingEvent(TrackingEventType _eventType) { SDKCall("LogTrackingEvent", (int)_eventType); } #endregion #endregion #region Online Config /// /// get config - int /// /// /// public override int GetConfigInt(string _key, int _default) { TKGDebugger.LogDebug("int _key : " + _key + " , _default : " + _default); int newValue = SDKCall("getConfigInt", _key, _default); return newValue; } /// /// get config - string /// /// /// public override string GetConfigString(string _key, string _default) { TKGDebugger.LogDebug("string _key : " + _key + " , _default : " + _default); string newValue = SDKCall("getConfigString", _key, _default); return newValue; } /// /// get config - bool /// /// /// public override bool GetConfigBool(string _key, bool _default) { TKGDebugger.LogDebug("bool _key : " + _key + " , _default : " + _default); bool newValue = SDKCall("getConfigBool", _key, _default); return newValue; } #endregion #region Others (Common) /// /// review /// public override void Review() { SDKCall("review"); } /// /// open Privacy /// public override void OpenPrivacyURL() { SDKCall("openPrivacy"); } /// /// open agreement /// public override void OpenUserTermURL() { SDKCall("openAgreement"); } /// /// open policy pop /// public override void OpenPolicyPop() { SDKCall("openPrivacyDialog"); } /// /// More Games /// public override void OpenMoreGame() { SDKCall("moreGames"); } /// /// Set Log Enable /// /// public override void SetLogEnable(bool _enable) { SDKCall("setLogEnable", _enable); } #endregion #region Others (Uncommon) /// /// shake(no repeat) /// /// shake time public override void shake(int _shakeType, float _intensity = 1) { long tShakeMS = _shakeType * _shakeType * 20 + (int)(_intensity * (_shakeType + 1) * 10); SDKCall("shake", tShakeMS); } /// /// shake(can repeat) /// /// repeat times : -1 /// wait time,shake time(100,1000,100,111) //public override void shake(int _repeatTimes, params int[] _shakeTime) //{ // SDKCall("shake", _repeatTimes, _shakeTime); //} /// /// cancel shake /// public override void cancelShake() { SDKCall("cancelShake"); } /// /// Show Tips /// Pop-up prompt (the one with black transparent background) unified style, Chinese, Japanese, Korean and English, support multi-language, multi-language text /// /// game judges different languages ​​by itself and passes different strings /// /// title /// content public override void dialogTips(string _titleStr, string _contentStr = "") { SDKCall("dialogTips", _titleStr); } /// /// Open ULR by Browser /// /// public override void openUrlBrowser(string _url) { SDKCall("openUrlBrowser", _url); } /// /// Open ULR By WEB POP /// /// public override void openWebUrl(string _url) { SDKCall("openWebUrl", _url); } /// /// show Toast /// /// public override void toast(string _content) { SDKCall("toast"); } /// /// push message /// public override void pushMsg() { SDKCall("pushMsg"); } #endregion #region common callback public override void SetSDKCommonCallback(AndroidTKGCommonCalllback _commonCallback) { SDKCall("setTkgCallback", _commonCallback); } public override void SetUserSourceCallback(AndroidTKGUserSourceCalllback _userSourceCallback) { SDKCall("getUserSource", _userSourceCallback); } #endregion } } #endregion #endif