Unity判断apk运行在模拟器上

文章讲述了开发者在尝试检测游戏是否在模拟器上运行时遇到的问题,现有的检测库效果不佳。作者提出了一种新方法,即通过检查CPU类型——真机通常使用ARM架构,而模拟器多为x86架构来判断。代码示例展示了如何使用SystemInfo.processorType来识别CPU类型。需要注意,这种方法不适用于x86设备如ChromeOS。
摘要由CSDN通过智能技术生成

最近有个需求,判断游戏是否运行在模拟器上,于是在网上搜各种方法,也在github是扒了个库(传送门:https://github.com/framgia/android-emulator-detector),发现还是判断不了模拟器,也做了各种尝试,发现效果不行,而且实现还很坑,于是笔者只能另想办法了;

笔者于是想到,现在移动平台的cpu基本是arm架构了,而且unity现在也不支持打x86的apk,但是在电脑上的,cpu现在基本是intel和amd,而这两类cpu都是x86架构,于是我们可以通过判断cpu的类型来判断是否运行在模拟器上;

废话不多说了,贴上代码

/// <summary>
    /// 判断是否运行在模拟器上
    /// 通过cpu类型来判断,电脑cpu一般是intel和amd,都是x86架构
    /// </summary>
    /// <returns>是否运行在模拟器上</returns>
    public bool IsSimulator()
    {
        string processorType = SystemInfo.processorType;    //模拟器上返回以x86开头的字符串
        if (string.IsNullOrEmpty(processorType))
            return false;
        else
            return processorType.StartsWith("x86", StringComparison.OrdinalIgnoreCase);
    }

笔者把当前主流模拟器试了下,发现SystemInfo.processorType返回的是x86开头的字符串,在真机上返回arm开头的字符串;

Chrome OS支持x86,如果运用要运行在x86平台,这种方法就不适合了,仅供大家参考;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值