系统检测:
IMEI 等×
优点:简单方便
缺点:模拟器一般都对这部分进行处理
手机号码×
手机号码在6.0后需要申请权限,敏感度太高,且不一定获取到。
硬件检测
电池☆
对电池电量,充电状态,温度等
一般模拟器对此并未处理,可靠度较高。
需要轮询处理,非及时,未来模拟器有可能对此进行修改。
mac地址×
优点:利用mac地址唯一性
缺点:模拟器可以模拟
wifi ☆
优点:连接wifi的情况下,AS模拟器显示 『wlan0 Link encap:UNSPEC』 未指定网卡类型,而真机情况下是『wlan0 Link encap:Ethernet』以太网。
缺点:只能在使用wifi情况下,非wifi情况下,该值都拿不到。
蓝牙 ☆
模拟器可以模拟拥有蓝牙设备
在未开启蓝牙的情况下, 但是获取到蓝牙的地址和名字为null,部分模拟器可能对此进行处理。
如开启蓝牙,需要权限申请,不建议进行此操作。
手机是可以获取到对应蓝牙相关。
相机×
夜神可以打开笔记本摄像头,台式机暂时不可知。
Gps×
模拟器支持虚拟定位,且6.0以后需要申请权限,海外包也不许定位。
传感器数量 ★★★
模拟器能模拟的传感器数量一般无法超过10,而一般手机传感器数量大于20。
小米mix2s传感器数量为48, 魅族6为16。
夜神模拟器 传感器数量 7。
分别为
Invensense Accelerometer (加速传感器)
Orientation Sensor (方位传感器)
Gyroscope (陀螺仪)
AK8963 Magnetometer (磁场传感器)
Gravity Sensor (重力传感器)
Rotation Vector Sensor(旋转矢量传感器)
Linear Acceleration Sensor(线性加速传感器)
HARDWARE和BOARD×
模拟器会返回自己模拟对象的参数。
特定硬件传感器 ★★★
全部类型见尾部代码。
模拟器暂时无法模仿的传感器
光传感器
Sensor.TYPE_LIGHT
临近传感器
TYPE_PROXIMITY
计步器
TYPE_STEP_COUNTER
预装app数量判断×
部分模拟器系统预装数量也不少,只能仅供参考 。
总结:
建议 首先使用传感器数量和特定传感器进行 可疑性判断
蓝牙, wifi, 电池 可以作为 辅助数据进行监听。
附加传感器类型代码
public String getSensorTypeName(int type) {
switch (type) {
case Sensor.TYPE_ACCELEROMETER:
return "加速度传感器";
case Sensor.TYPE_GYROSCOPE:
return "陀螺仪传感器";
case Sensor.TYPE_LIGHT:
return "环境光线传感器";
case Sensor.TYPE_MAGNETIC_FIELD:
return "电磁场传感器";
case Sensor.TYPE_ORIENTATION:
return "方向传感器";
case Sensor.TYPE_PRESSURE:
return "压力传感器";
case Sensor.TYPE_PROXIMITY:
return "距离传感器";
case Sensor.TYPE_TEMPERATURE:
return "温度传感器";
case Sensor.TYPE_GRAVITY:
return "重场传感器";
case Sensor.TYPE_LINEAR_ACCELERATION:
return "线性加速度传感器";
case Sensor.TYPE_ROTATION_VECTOR:
return "旋转矢量传感器";
case Sensor.TYPE_RELATIVE_HUMIDITY:
return "湿度传感器";
case Sensor.TYPE_AMBIENT_TEMPERATURE:
return "温度传感器";
case Sensor.TYPE_GAME_ROTATION_VECTOR:
return "游戏旋转矢量传感器";
case Sensor.TYPE_STEP_COUNTER:
return "计步器";
case Sensor.TYPE_GEOMAGNETIC_ROTATION_VECTOR:
return "地磁旋转矢量传感器";
case Sensor.TYPE_SIGNIFICANT_MOTION:
return "特殊动作触发传感器";
default:
return "未知传感器";
}
}
网友评论