添加Transfer SDK 类
This commit is contained in:
parent
9090c1102c
commit
e08fa9a482
|
|
@ -70,6 +70,7 @@ public class AdjustManager : D_MonoSingleton<AdjustManager>
|
|||
private void AttributionChangedDelegate(AdjustAttribution attribution)
|
||||
{
|
||||
Debug.Log("Attribution changed network: " + attribution.Network + " campaign: " + attribution.Campaign + " adgroup: " + attribution.Adgroup + " creative: " + attribution.Creative);
|
||||
SetAttributionData(attribution);
|
||||
if (m_start) return;
|
||||
m_start = true;
|
||||
callbackNetwork = attribution.Network;
|
||||
|
|
@ -81,6 +82,17 @@ public class AdjustManager : D_MonoSingleton<AdjustManager>
|
|||
InvokeRepeating(nameof(CallGetAttributionAsync), 0, 1);
|
||||
}
|
||||
|
||||
private void SetAttributionData(AdjustAttribution att)
|
||||
{
|
||||
var network = att.Network;
|
||||
if(string.IsNullOrEmpty(network)) network = "Organic";
|
||||
PlayerPrefsUtils.SavePlayerPrefsString(_adjustNetwork, network);
|
||||
PlayerPrefsUtils.SavePlayerPrefsString(_adjustCampaign, att?.Campaign);
|
||||
PlayerPrefsUtils.SavePlayerPrefsString(_adjustAdgroup, att?.Adgroup);
|
||||
PlayerPrefsUtils.SavePlayerPrefsString(_adjustCreative, att?.Creative);
|
||||
PlayerPrefsUtils.SavePlayerPrefsString(_adjustClickLabel, att?.ClickLabel);
|
||||
}
|
||||
|
||||
private async Task CallGetAttributionAsync()
|
||||
{
|
||||
callGetTimes++;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 154bbe5c15f564b5aa6ef29b783e453e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,158 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace WZ
|
||||
{
|
||||
#region Android接口代理类
|
||||
|
||||
/// <summary>
|
||||
/// RequestListener接口代理
|
||||
/// </summary>
|
||||
class RequestListenerProxy : AndroidJavaProxy
|
||||
{
|
||||
private Action<bool,string> _callback;
|
||||
|
||||
public RequestListenerProxy(Action<bool,string> callback) : base("com.drive.master.game.RequestListener")
|
||||
{
|
||||
_callback = callback;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public class TransferAndroidClass : MonoBehaviour
|
||||
{
|
||||
private static AndroidJavaClass transferSDKClass = null;
|
||||
private static AndroidJavaObject currentActivity = null;
|
||||
public static void Init()
|
||||
{
|
||||
if (transferSDKClass == null)
|
||||
{
|
||||
try
|
||||
{
|
||||
var name = "com.drive.master.game.TransferSDK";
|
||||
LoggerUtils.Debug("TransferSDK初始化: class name = "+name);
|
||||
transferSDKClass = new AndroidJavaClass(name);
|
||||
// 获取Unity当前Activity
|
||||
using (AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
|
||||
{
|
||||
currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerUtils.Error("TransferSDK初始化失败: " + e.Message);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// 调用init方法
|
||||
transferSDKClass.CallStatic("init");
|
||||
}
|
||||
|
||||
#region VPN权限相关
|
||||
|
||||
/// <summary>
|
||||
/// 检查是否有VPN权限
|
||||
/// </summary>
|
||||
public static bool IsVpnPermissionGranted()
|
||||
{
|
||||
if (transferSDKClass == null)
|
||||
{
|
||||
LoggerUtils.Warning("TransferSDK未初始化");
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
return transferSDKClass.CallStatic<bool>("isVpnPermissionGranted");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerUtils.Error("检查VPN权限失败: " + e.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 申请VPN权限并连接VPN
|
||||
/// </summary>
|
||||
public static void RequestVpnPermission(Action<bool,string> callback)
|
||||
{
|
||||
if (transferSDKClass == null)
|
||||
{
|
||||
LoggerUtils.Warning("TransferSDK未初始化");
|
||||
callback?.Invoke(false,"TransferSDK未初始化");
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
transferSDKClass.CallStatic("requestVpnPermission", currentActivity, new RequestListenerProxy(callback));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerUtils.Error("申请VPN权限失败: " + e.Message);
|
||||
callback?.Invoke(false,"申请VPN权限失败: " + e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检查VPN连接状态
|
||||
/// </summary>
|
||||
public static bool IsVpnConnected()
|
||||
{
|
||||
if (transferSDKClass == null)
|
||||
{
|
||||
LoggerUtils.Warning("TransferSDK未初始化");
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
return transferSDKClass.CallStatic<bool>("isVpnConnected");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerUtils.Error("检查VPN状态失败: " + e.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region AdMob相关
|
||||
|
||||
/// <summary>
|
||||
/// 检查是否能使用AdMob
|
||||
/// </summary>
|
||||
public static void IsAllowAdMob(Action<bool, string> callback)
|
||||
{
|
||||
if (transferSDKClass == null)
|
||||
{
|
||||
Debug.LogWarning("TransferSDK未初始化");
|
||||
callback?.Invoke(false, "SDK未初始化");
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
transferSDKClass.CallStatic("isAllowAdMob", new RequestListenerProxy(callback));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerUtils.Error("检查AdMob权限失败: " + e.Message);
|
||||
callback?.Invoke(false, "SDK调用异常");
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c5bca977a1cdb4f9498b996d89b1d9ab
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Loading…
Reference in New Issue