楼主有个应用需要判断设备是否为真机,如果是模拟器就不能让用户注册,开始思路是判断设备有无GPS模块,楼主用夜神模拟器测了下,都不行。
然后在网上找检测设备是否为模拟器,找到解决方法,真的很靠谱,但有些权限没有写上去,所以获取到的都不大行,所以在这总结一下,希望大家少走弯路。
楼主亲测有效
1.获取权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>2.判断设备是否为真机
/** * 判断当前设备是否是真机。如果返回TRUE,则当前是真机,不是返回FALSE * * @return */ public static boolean isRealMachine() { String BOARD =android.os.Build.BOARD; String BOOTLOADER =android.os.Build.BOOTLOADER; String BRAND =android.os.Build.BRAND; String DEVICE =android.os.Build.DEVICE; String HARDWARE =android.os.Build.HARDWARE; String MODEL =android.os.Build.MODEL; String PRODUCT =android.os.Build.PRODUCT; if(BOARD== "unknown"|| BOOTLOADER== "unknown" ||BRAND =="generic" ||DEVICE =="generic" ||MODEL =="sdk" ||PRODUCT =="sdk" ||HARDWARE =="goldfish") { Log.v("Result:","Find Emulator by EmulatorBuild!"); return true; } Log.v("Result:","Not Find Emulator by EmulatorBuild!"); return false; }
下面贴出楼主找到的资料链接:http://blog.csdn.net/androidstarjack/article/details/53400463 感谢androidstarjack大神!
如有疑问,欢迎留言!