miduo_client/Assets/LuaFramework/Scripts/SDK/Tools/NotchScreenUtil.cs

80 lines
1.6 KiB
C#

using UnityEngine;
using UnityEditor;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System;
public class NotchScreenUtil
{
private AndroidJavaObject jo;
private AndroidJavaObject context;
private static NotchScreenUtil _instance;
public static NotchScreenUtil Instance
{
get
{
if (_instance == null)
{
_instance = new NotchScreenUtil();
}
return _instance;
}
}
#if UNITY_IOS
//初始化
[DllImport("__Internal")]
private static extern string m_GetNotchHeight();
#endif
private NotchScreenUtil()
{
#if UNITY_IOS
#elif UNITY_ANDROID
using (var up = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
context = up.GetStatic<AndroidJavaObject>("currentActivity");
using (var adi = new AndroidJavaClass("com.bluewhale.androidutils.NotchScreenUtil"))
{
jo = adi.CallStatic<AndroidJavaObject>("instance");
jo.Call("Init", context);
}
}
#endif
}
public void Init()
{
Debug.Log("设备信息初始化");
}
// 获取刘海屏高度
public int GetNotchHeight()
{
int height = 0;
try
{
#if UNITY_IOS
height = Mathf.Floor(Convert.ToSingle(m_GetNotchHeight()));
#elif UNITY_ANDROID
height = jo.CallStatic<int>("getNotchHeight");
#endif
}
catch (Exception e)
{
Debug.LogError(e);
}
return height;
}
}