50 lines
1.3 KiB
C#
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);
|
|
}
|
|
}
|