仅在物理设备上运行Android应用程序,不在模拟器上运行
如何使我的应用程序只在物理android设备上运行,而不是在模拟器上运行 当应用程序启动时,我想检查设备是物理设备还是模拟器。如果是模拟器,我希望我的应用程序停止 如何执行此操作?在启动活动的仅在物理设备上运行Android应用程序,不在模拟器上运行,android,android-emulator,adb,emulation,Android,Android Emulator,Adb,Emulation,如何使我的应用程序只在物理android设备上运行,而不是在模拟器上运行 当应用程序启动时,我想检查设备是物理设备还是模拟器。如果是模拟器,我希望我的应用程序停止 如何执行此操作?在启动活动的onCreate()方法中,您可以检查设备是否在模拟器上运行,如果是,只需调用finish()。要检查您是否在仿真器上运行,可以使用以下代码(取自): 您可以在web上找到许多其他关于检测仿真器环境的建议。我不知道有哪种方法绝对可靠,但上面的方法非常可靠。您可以尝试下面的方法 boolean isEmula
onCreate()
方法中,您可以检查设备是否在模拟器上运行,如果是,只需调用finish()
。要检查您是否在仿真器上运行,可以使用以下代码(取自):
您可以在web上找到许多其他关于检测仿真器环境的建议。我不知道有哪种方法绝对可靠,但上面的方法非常可靠。您可以尝试下面的方法
boolean isEmulator() {
return (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))
|| Build.FINGERPRINT.startsWith("generic")
|| Build.FINGERPRINT.startsWith("unknown")
|| Build.HARDWARE.contains("goldfish")
|| Build.HARDWARE.contains("ranchu")
|| Build.HARDWARE.equals("vbox86")
|| Build.HARDWARE.toLowerCase().contains("nox")
|| Build.MODEL.contains("google_sdk")
|| Build.MODEL.contains("Emulator")
|| Build.MODEL.contains("Android SDK built for x86")
|| Build.MODEL.toLowerCase().contains("droid4x")
|| Build.MANUFACTURER.contains("Genymotion")
|| Build.PRODUCT.contains("sdk_google")
|| Build.PRODUCT.contains("google_sdk")
|| Build.PRODUCT.contains("sdk")
|| Build.PRODUCT.contains("sdk_x86")
|| Build.PRODUCT.contains("vbox86p")
|| Build.PRODUCT.contains("emulator")
|| Build.PRODUCT.contains("simulator")
|| Build.PRODUCT.toLowerCase().contains("nox")
|| Build.BOARD.toLowerCase().contains("nox")
|| Build.BOOTLOADER.toLowerCase().contains("nox")
|| Build.SERIAL.toLowerCase().contains("nox");
}
这是颤振项目(设备信息插件)中使用的代码的更新。选中它关闭模拟器您是在询问如何在启动应用程序时使其不在模拟器中运行,还是如何阻止其他人在模拟器中运行您的应用程序?是的。。我想阻止其他人在emulator上运行应用程序
boolean isEmulator() {
return (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))
|| Build.FINGERPRINT.startsWith("generic")
|| Build.FINGERPRINT.startsWith("unknown")
|| Build.HARDWARE.contains("goldfish")
|| Build.HARDWARE.contains("ranchu")
|| Build.HARDWARE.equals("vbox86")
|| Build.HARDWARE.toLowerCase().contains("nox")
|| Build.MODEL.contains("google_sdk")
|| Build.MODEL.contains("Emulator")
|| Build.MODEL.contains("Android SDK built for x86")
|| Build.MODEL.toLowerCase().contains("droid4x")
|| Build.MANUFACTURER.contains("Genymotion")
|| Build.PRODUCT.contains("sdk_google")
|| Build.PRODUCT.contains("google_sdk")
|| Build.PRODUCT.contains("sdk")
|| Build.PRODUCT.contains("sdk_x86")
|| Build.PRODUCT.contains("vbox86p")
|| Build.PRODUCT.contains("emulator")
|| Build.PRODUCT.contains("simulator")
|| Build.PRODUCT.toLowerCase().contains("nox")
|| Build.BOARD.toLowerCase().contains("nox")
|| Build.BOOTLOADER.toLowerCase().contains("nox")
|| Build.SERIAL.toLowerCase().contains("nox");
}