[DeadWind] 判断游戏是否在模拟器上运行
  上一篇写的是shader学习笔记,讲的都是shader的基础或者说是简介吧。shader还会继续更下去,之后呢就改名叫shader从入门到放弃吧,哈哈哈。。。

  那为什么突然写这篇文章呢?因为上面要求我们项目对模拟器进行优化。对的,针对模拟器进行优化。那既然要针对模拟器进行优化,首先肯定是要判断出当前的运行环境是否是模拟器。回归主题,怎么判断游戏是在模拟器上运行呢?


判断蓝牙?  
在网上查阅一番,大多数都是说不行的。

判断CPU?        
同样也查阅了一番,据说部分模拟器可以。原理是在PC端的电脑只有英特尔和AMD,只要判断出CPU为此两个类型,那就肯定是在模拟器上。

判断传感器?
传感器也分为很多种,加速度传感器、磁场传感器、方向传感器、光传感器等等
许多传感器,模拟器都可以模拟,我们这里呢用的是光传感器。

废话不多说,上代码,简单粗暴。
[mw_shl_code=csharp,true]static public bool GetIsSimulator()
    {
#if UNITY_
        //判断是否存在光传感器来判断是否为模拟器
        JavaObject sensorManager  = currentActivity.Call<AndroidJavaObject>("getSystemService", "sensor");
        AndroidJavaObject sensor  = sensorManager.Call<AndroidJavaObject>("getDefaultSensor",5);    //光传感器
        if(sensor == null){
            return true;
        }else{
            return false;
        }
#endif
        return false;
    }[/mw_shl_code]

测试模拟器:雷电模拟器,夜神模拟器,网易mumu,腾讯手游助手都测出为模拟器。

下篇如无意外,将会继续分享Shader的学习笔记(shader入门到放弃)。




厉害了真是什么大小细节都有办法实现
6666,成功get到知识点
哇哦
模拟器模拟器模拟器
感谢楼主分享,
  • 7# sunkai
  • 2019-7-29 08:39:48
可以啊,发散思维
感谢分享
  • 9# JWZJ
  • 2019-7-29 09:54:10
许多传感器,模拟器都可以模拟,我们这里呢用的是光传感器。
谢谢分享
就冲着从入门到放弃来的
  • 12# zhizhi
  • 2019-7-30 16:07:10
厉害了,收藏
Nice...