SDK_UnityMoney/Assets/BigoAds/Scripts/Platforms/Android/AndroidPlatformTool.cs

101 lines
3.2 KiB
C#
Raw Normal View History

#if UNITY_ANDROID
using System;
using System.Collections.Generic;
using System.Text;
using BigoAds.Scripts.Api;
using BigoAds.Scripts.Api.Constant;
using UnityEngine;
namespace BigoAds.Scripts.Platforms.Android
{
internal static class AndroidPlatformTool
{
public const string ClassPackage = "sg.bigo.ads";
private const string UnityPlayerClassName = "com.unity3d.player.UnityPlayer";
private const string CurrentActivityMethod = "currentActivity";
private const string ResourceUtilClassName = ClassPackage + ".ResourceUtil";
private const string AdConfigClassName = ClassPackage + ".api.AdConfig$Builder";
public static AndroidJavaObject GetGameActivity()
{
return new AndroidJavaClass(UnityPlayerClassName).GetStatic<AndroidJavaObject>(CurrentActivityMethod);
}
public static AndroidJavaObject GetBigoConfig(BigoAdConfig config)
{
var builder = new AndroidJavaObject(AdConfigClassName);
if (config != null)
{
void CallNativeFunction<T>(string methodName, T arg)
{
builder.Call<AndroidJavaObject>(methodName, arg);
}
if (!string.IsNullOrEmpty(config.AppId))
{
CallNativeFunction("setAppId", config.AppId);
}
if (config.DebugLog) //default value is false
{
Debug.Log("set debug true");
CallNativeFunction("setDebug", true);
}
if (!string.IsNullOrEmpty(config.Channel))
{
CallNativeFunction("setChannel", config.Channel);
}
if (config.Age > 0)
{
CallNativeFunction("setAge", config.Age);
}
if (config.Gender > 0)
{
CallNativeFunction("setGender", config.Gender);
}
if (config.ActivatedTime > 0)
{
CallNativeFunction("setActivatedTime", config.ActivatedTime);
}
foreach (KeyValuePair<string, string> item in config.ExtraDictionary)
{
Debug.Log($"bigo sdk config extra:" + item.Key + "=" + item.Value);
builder.Call<AndroidJavaObject>("addExtra", item.Key, item.Value);
}
}
return builder.Call<AndroidJavaObject>("build");
}
public static AndroidJavaObject GetAdRequest(BigoRequest request)
{
switch (request)
{
case BigoBannerRequest _:
break;
case BigoNativeRequest _:
break;
case BigoSplashRequest _:
break;
case BigoInterstitialRequest _:
break;
case BigoRewardedRequest _:
break;
}
return null;
}
public static void CallMethodOnMainThread(Action task)
{
GetGameActivity()?.Call("runOnUiThread", new AndroidJavaRunnable(task));
}
}
}
#endif