首页 > 移动平台 > 详细

安卓层判断模拟器

时间:2021-02-05 15:15:42      阅读:18      评论:0      收藏:0      [点我收藏+]

由于项目有需要用到判断用户是不是模拟器用户,在CPU、机型、唯一码等方法都不行的时候,还有一个方法就是拨号,或者再加上一些特征码。

但目前夜神和蓝叠都仍被判断为真机(莫非只能上光感了?)

 

public static boolean IsEmulator()
  {
      try
      {
       Activity m_activity = UnityPlayer.currentActivity;
          String url = "tel:" + "12345678910";
          Intent intent = new Intent();
          intent.setData(Uri.parse(url));
          intent.setAction(Intent.ACTION_DIAL);
          // 是否可以处理跳转到拨号的 Intent
          boolean canResolveIntent = intent.resolveActivity(m_activity.getPackageManager()) != null;
  
          return Build.FINGERPRINT.startsWith("generic")
                  || Build.FINGERPRINT.toLowerCase().contains("vbox")
                  || Build.FINGERPRINT.toLowerCase().contains("test-keys")
                  || Build.MODEL.contains("google_sdk")
                  || Build.MODEL.contains("Emulator")
                 // || Build.BOARD.equals("unknown")
                 // || Build.BOOTLOADER.equals("unknown")
                  || Build.MODEL.contains("Android SDK built for x86")
                  || Build.MANUFACTURER.contains("Genymotion")
                  || (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))
                  || Build.PRODUCT.equals("google_sdk")
                  || ((TelephonyManager)m_activity.getSystemService(Context.TELEPHONY_SERVICE))
                      .getNetworkOperatorName().toLowerCase().equals("android")
                  || !canResolveIntent;
      }
      catch (Exception e)
      {
          return false;
      }
  }

 

安卓层判断模拟器

原文:https://www.cnblogs.com/duanminkid/p/14377397.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!