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

80 lines
1.6 KiB
C#
Raw Normal View History

2020-06-30 18:59:44 +08:00
using UnityEngine;
using UnityEditor;
using System.Collections.Generic;
2020-08-22 15:31:14 +08:00
using System.Runtime.InteropServices;
2020-06-30 18:59:44 +08:00
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;
}
}
2020-08-22 15:31:14 +08:00
#if UNITY_IOS
//初始化
[DllImport("__Internal")]
private static extern string m_GetNotchHeight();
#endif
2020-06-30 18:59:44 +08:00
private NotchScreenUtil()
{
2020-08-15 10:13:32 +08:00
#if UNITY_IOS
#elif UNITY_ANDROID
2020-06-30 18:59:44 +08:00
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);
}
}
2020-08-15 10:13:32 +08:00
#endif
2020-06-30 18:59:44 +08:00
}
public void Init()
{
Debug.Log("设备信息初始化");
}
2020-08-22 15:31:14 +08:00
2020-06-30 18:59:44 +08:00
// 获取刘海屏高度
public int GetNotchHeight()
{
int height = 0;
2020-08-15 10:13:32 +08:00
2020-06-30 18:59:44 +08:00
try
{
2020-08-15 10:13:32 +08:00
#if UNITY_IOS
2020-08-22 15:31:14 +08:00
height = Mathf.Floor(Convert.ToSingle(m_GetNotchHeight()));
2020-08-15 10:13:32 +08:00
#elif UNITY_ANDROID
2020-06-30 18:59:44 +08:00
height = jo.CallStatic<int>("getNotchHeight");
2020-08-15 10:13:32 +08:00
#endif
2020-06-30 18:59:44 +08:00
}
catch (Exception e)
{
Debug.LogError(e);
}
2020-08-15 10:13:32 +08:00
return height;
2020-06-30 18:59:44 +08:00
}
}