NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/GameWrapper/DeviceIdHandle.cs

50 lines
1.3 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DeviceIdHandle : MonoBehaviour
{
private static DeviceIdHandle _instance;
private AndroidJavaObject oaidActivity;
public static DeviceIdHandle Instance
{
get
{
if (_instance is null)
{
var go = new GameObject("DeviceIdHandle");
_instance = go.AddComponent<DeviceIdHandle>();
DontDestroyOnLoad(go);
}
return _instance;
}
}
public void GetOAID()
{
if (oaidActivity == null)
{
// 获取当前的 Android Activity
using (AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
oaidActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
}
}
// 调用 Android 的 GetOAID 方法
AndroidJavaObject utils = new AndroidJavaObject("com.example.oaidtest2.OAID_Activity");
utils.Call("GetOAID", gameObject.name, "OnOAIDReceived");
//oaidActivity.Call("GetOAID", gameObject.name, "OnOAIDReceived");
}
// 回调方法,用于接收 OAID
private void OnOAIDReceived(string oaid)
{
Debug.Log("Received OAID: " + oaid);
}
}