当前位置:   article > 正文

Android全面检测设备是否模拟器_com.kaopu001.tiantianime

com.kaopu001.tiantianime

前言

前段时间工作有个需求,要求检测App是否在模拟器环境下运行,就像在有些手机游戏上可以看到这个功能

乍一看蛮简单的,后来我查了一下资料,然后头都大了······

这多亏了国内pc端模拟器的发展,现在市面上的模拟器越来越多,也越来越“逼真”了,模拟器和真机的区别在逐步缩小,这就使得模拟器的检测存在偏差,不管有多小,偏差总是会存在的,如何降低这种偏差值,就是这篇文章像讨论的内容。

先来看一下我是怎么头大的

1.拨号检测法

首先一开始想到的就是能否拨号,真机肯定可以的,不然手机的根基就没了,模拟器肯定不能拨号,所以我很快写下代码:

public boolean isSimulator1() {
        String url = "tel:" + "123456";
        Intent intent = new Intent();
        intent.setData(Uri.parse(url));
        intent.setAction(Intent.ACTION_DIAL);
        // 是否可以处理跳转到拨号的 Intent
        boolean canResolveIntent = intent.resolveActivity(mContext.getPackageManager()) != null;
		return !canResolveIntent;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

完事收工!… … 等会,夜神模拟器怎么可以返回个false?也就是夜神模拟器是可以跳转拨号的

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/261798
推荐阅读
相关标签