美文网首页
android 判断模拟器

android 判断模拟器

作者: 我是周呀 | 来源:发表于2018-08-01 18:52 被阅读0次

    资料来自网络  点我点我  资料资料

    我查到的资料有很多,但是人懒,没有一个一个去试。选了三种,实现了判断的功能,算是站在巨人的肩上完成的。

    啦啦

    第一种:判断蓝牙

        虽然网上说很多模拟器都能屏蔽这个,但是天真的我去试了一下,妈蛋。为什么我下的模拟器都告诉我没有蓝牙,难道是我太帅了。上代码:


    /**

    * 判断蓝牙是否有效来判断是否为模拟器

    *

    * @return true 为模拟器

    */

    public boolean notHasBlueTooth() {

    BluetoothAdapter ba = BluetoothAdapter.getDefaultAdapter();

        if (ba ==null) {

    return true;

        }else {

    // 如果有蓝牙不一定是有效的。获取蓝牙名称,若为null 则默认为模拟器

            String name = ba.getName();

            if (TextUtils.isEmpty(name)) {

    return true;

            }else {

    return false;

            }

    }

    }


    以上就是判断蓝牙的代码。当返回false时,那就是真机了,当为true时,就是模拟器了,后面雷同。我很懒的。

    第二种:判断光传感器

    话不多说,上代码。


    /**

    * 判断是否存在光传感器来判断是否为模拟器

    * 部分真机也不存在温度和压力传感器。其余传感器模拟器也存在。

    * @return true 为模拟器

    */

    public static BooleannotHasLightSensorManager(Context context) {

    SensorManager sensorManager = (SensorManager) context.getSystemService(SENSOR_SERVICE);

        Sensor sensor8 = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); //光

        if (null == sensor8) {

    return true;

        }else {

    return false;

        }

    }


    第三种:判断CPU


    /**

    * 判断cpu是否为电脑来判断 模拟器

    *

    * @return true 为模拟器

    */

    public static boolean checkIsNotRealPhone() {

    String cpuInfo =readCpuInfo();

        if ((cpuInfo.contains("intel") || cpuInfo.contains("amd"))) {

    return true;

        }

    return false;

    }

    //用到的方法

    public static StringreadCpuInfo() {

    String result ="";

        try {

    String[] args = {"/system/bin/cat", "/proc/cpuinfo"};

            ProcessBuilder cmd =new ProcessBuilder(args);

            Process process = cmd.start();

            StringBuffer sb =new StringBuffer();

            String readLine ="";

            BufferedReader responseReader =new BufferedReader(new InputStreamReader(process.getInputStream(), "utf-8"));

            while ((readLine = responseReader.readLine()) !=null) {

    sb.append(readLine);

            }

    responseReader.close();

            result = sb.toString().toLowerCase();

        }catch (IOException ex) {

    }

    return result;

    }


    好了,代码就到这里了。

    我测试了一下:

    1.逍遥模拟器 All 2. 蓝叠模拟器 All 3. 夜神模拟器 cpu

    4. 靠谱助手 All5. 天天模拟器 cpu 6. 海马模拟器All 7.雷电模拟器 All

    这些里面 夜神和天天的都跳过了CPU的验证,可能是我查的资料有问题吧。

    我要说一声

    上面的代码不是原创,准确的说,这是我复制的,写这篇文章,只是为了记录。怕以后忘了,所以不要打赏,如果觉得有用可以给个小心心的。

    拜谢。

    相关文章

      网友评论

          本文标题:android 判断模拟器

          本文链接:https://www.haomeiwen.com/subject/fbgrvftx.html