101 lines
3.2 KiB
C#
101 lines
3.2 KiB
C#
#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 |