如何判断模拟器与真机

boolean a = Activity_CheckMessage.CheckOperatorNameAndroid(this);// 检测手机运营商家
        boolean b = Activity_CheckMessage.CheckEmulatorBuild(this);// 检测手机上的一些硬件信息
        boolean c = Activity_CheckMessage.CheckImsiIDS(this);// 检测imsi
                                                                // id是不是“310260000000000
        boolean d = Activity_CheckMessage.CheckDeviceIDS(this);// 检测设备IDS 是不是
                                                                // “000000000000000”
        boolean e = Activity_CheckMessage.CheckPhoneNumber(this);// 检测模拟器默认的电话号码
        boolean f = Activity_CheckMessage.CheckEmulatorFiles();// 检测模拟器上特有的几个文件
        boolean g = Activity_CheckMessage.checkPipes();// 检测“/dev/socket/qemud”,“/dev/qemu_pipe”这两个通道
        boolean k = Activity_CheckMessage.CheckQEmuDriverFile();// 读取文件内容
        String h = Activity_CheckMessage.getBaseband_Ver();// 基带版本
        String i = Activity_CheckMessage.getLinuxCore_Ver();// 内核版本
        String j = Activity_CheckMessage.getInner_Ver();// 内部版本
        final TelephonyManager tm = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPHONY_SERVICE);
        String imei = tm.getDeviceId();// IMEI 移动设备国际身份码。
        String imsi = tm.getSubscriberId();// IMSI国际移动用户识别码,储存在SIM卡中
        String serial = android.os.Build.SERIAL;// Serial序列号
        WifiManager wifimanage = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        WifiInfo wifiinfo = wifimanage.getConnectionInfo();// Mac地址
        SensorManager sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE); // 检测是否有重力传感器
        // 手机内部信息
        String phoneInfo = "手机制造商: " + android.os.Build.PRODUCT + "\n" + "CPU的类型: " + android.os.Build.CPU_ABI + "\n"
                + "设备标签: " + android.os.Build.TAGS + "\n" + "VERSION_CODES.BASE: " + android.os.Build.VERSION_CODES.BASE
                + "\n" + "设备名: " + android.os.Build.MODEL + "\n" + "sdk版本号: " + android.os.Build.VERSION.SDK + "\n"
                + "系统版本字符串: " + android.os.Build.VERSION.RELEASE + "\n" + "设备驱动名称: " + android.os.Build.DEVICE + "\n"
                + "显示屏参数: " + android.os.Build.DISPLAY + "\n" + "设备品牌: " + android.os.Build.BRAND + "\n" + "设备基板名称: "
                + android.os.Build.BOARD + "\n" + "设备的唯一标识: " + android.os.Build.FINGERPRINT + "\n" + "设备版本号: "
                + android.os.Build.ID + "\n" + "设备制造商: " + android.os.Build.MANUFACTURER + "\n" + "设备用户名: "
                + android.os.Build.USER + "\n" + "程序版本号: " + android.os.Build.BOOTLOADER + "\n" + "设备硬件名称: "
                + android.os.Build.HARDWARE + "\n" + "系统源代码控制值: " + android.os.Build.VERSION.INCREMENTAL + "\n"
                + "设备当前的系统开发代号: " + android.os.Build.VERSION.CODENAME + "\n" + "系统的API级别: "
                + android.os.Build.VERSION.SDK_INT + "\n";

        Log.e("检测手机运营商家", a + "");
        Log.e("检测手机上的一些硬件信息", b + "");
        Log.e("检测imsi", c + "");
        Log.e("检测设备IDS", d + "");
        Log.e("检测模拟器默认的电话号码", e + "");
        Log.e("检测模拟器上特有的几个文件", f + "");
        Log.e("检测“/dev/socket/qemud”,“/dev/qemu_pipe”这两个通道", g + "");
        Log.e("基带版本:", h + "");
        Log.e("内核版本:", i + "");
        Log.e("内部版本:", j + "");
        Log.e("读取文件内容:", k + "");
        Log.e("imei移动设备国际身份码", imei + "");
        Log.e("imsi国际移动用户识别码", imsi + "");
        Log.e("Serial序列号", serial + "");
        Log.e("wifiinfo  Mac地址", wifiinfo.toString() + "");
        Log.e("SensorManager重力传感器", sm.getDefaultSensor(Sensor.TYPE_GRAVITY) + "");
        Log.e("phoneInfo手机内部信息", phoneInfo + "");

        showToast("基带版本:" + h + "\n" + "读取文件内容:" + k + "");

        // 为了兼容低版本我们这里使用旧版的android.text.ClipboardManager,虽然提示deprecated,但不影响使用。
        ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
        // 将文本内容放到系统剪贴板里。
        cm.setText("检测手机运营商家" + a + "检测手机上的一些硬件信息" + b + "检测imsi" + c + "检测设备IDS" + d + "检测模拟器默认的电话号码" + e
                + "检测模拟器上特有的几个文件" + f + "检测“/dev/socket/qemud”,“/dev/qemu_pipe”这两个通道" + g + "基带版本:" + h + "内核版本:" + i
                + "内部版本:" + j + "读取文件内容:" + k + "imei移动设备国际身份码" + imei + "imsi国际移动用户识别码" + imsi + "Serial序列号" + serial
                + "wifiinfo  Mac地址" + wifiinfo.toString() + "SensorManager重力传感器"
                + sm.getDefaultSensor(Sensor.TYPE_GRAVITY) + "phoneInfo手机内部信息" + phoneInfo + "");

测试截图:
如何判断模拟器与真机_第1张图片
如何判断模拟器与真机_第2张图片
如何判断模拟器与真机_第3张图片

经过对比我们可以发现
如何判断模拟器与真机_第4张图片

基带版本,设备基板名称,以及程序版本号 模拟器和真机是有差别的 我觉得可以由此判断。
小白,有问题可以随时告知我!谢谢

你可能感兴趣的:(Java)