如何判断模拟器与真机

发布于:2021-09-25 10:16:20

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 + "
" + "CPU的类型: " + android.os.Build.CPU_ABI + "
"
+ "设备标签: " + android.os.Build.TAGS + "
" + "VERSION_CODES.BASE: " + android.os.Build.VERSION_CODES.BASE
+ "
" + "设备名: " + android.os.Build.MODEL + "
" + "sdk版本号: " + android.os.Build.VERSION.SDK + "
"
+ "系统版本字符串: " + android.os.Build.VERSION.RELEASE + "
" + "设备驱动名称: " + android.os.Build.DEVICE + "
"
+ "显示屏参数: " + android.os.Build.DISPLAY + "
" + "设备品牌: " + android.os.Build.BRAND + "
" + "设备基板名称: "
+ android.os.Build.BOARD + "
" + "设备的唯一标识: " + android.os.Build.FINGERPRINT + "
" + "设备版本号: "
+ android.os.Build.ID + "
" + "设备制造商: " + android.os.Build.MANUFACTURER + "
" + "设备用户名: "
+ android.os.Build.USER + "
" + "程序版本号: " + android.os.Build.BOOTLOADER + "
" + "设备硬件名称: "
+ android.os.Build.HARDWARE + "
" + "系统源代码控制值: " + android.os.Build.VERSION.INCREMENTAL + "
"
+ "设备当前的系统开发代号: " + android.os.Build.VERSION.CODENAME + "
" + "系统的API级别: "
+ android.os.Build.VERSION.SDK_INT + "
";

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 + "
" + "读取文件内容:" + 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 + "");

测试截图:



经过对比我们可以发现


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

相关推荐

最新更新

猜你喜欢