方法如下:
/**
* 检测是否运行在模拟器上
*
* @return
* @throws Exception
* @author qiulinhe
* @createTime 2017年5月12日 下午1:57:29
*/
public boolean isEmulator() {
String buildDetails = (Build.FINGERPRINT + Build.DEVICE + Build.MODEL + Build.BRAND + Build.PRODUCT + Build.MANUFACTURER + Build.HARDWARE)
.toLowerCase();
//我试了网上所有的方法,都没用,最后看打出来的string,找到特殊的字符串:kot49h,这个是bluestacks模拟器返回的
if (buildDetails.contains("keyshlteatt") || buildDetails.contains("kot49h") || buildDetails.contains("generic")
|| buildDetails.contains("unknown") || buildDetails.contains("emulator") || buildDetails.contains("sdk")
|| buildDetails.contains("genymotion") || buildDetails.contains("x86") // this includes vbox86
|| buildDetails.contains("goldfish") || buildDetails.contains("test-keys")) {
return true;
}
return false;
}
试了一个遍网上的其他方法,都是没有用的,最新的bluestacks蓝叠是没有的,只有从他们返回的字符串入手,我打印的情况如下:
真实的htc手机 的htc/htccn_chs/htc_a51dtul:4.4.4/ktu84p/484493.10:user/release-keyshtc_a51dtulhtc
d820thtchtccn_chshtcqcom
05-12 13:50:25.741: I/System.out(7811):
模拟器的bluestacks :samsung/hlteuc/hlteatt:4.4.2/kot49h/n900aucucmlg:user/release-keyshlteattsamsung-sm-n900
asamsunghlteucsamsunguniversal5420
真实三星平板的samsung/gts210wifizs/gts210wifi:5.0.2/lrx22g/t810zsu1aog5:user/
release-keysgts210wifism-t810samsunggts210wifizssamsunguniversal5433