是否有可能以编程方式检测是真实的还是虚拟的Android设备?

use*_*028 2 android android-emulator

在我的Android应用程序中,我必须使用加速计和其他传感器.由于此传感器未由虚拟设备模拟,因此我将使用SensorSimulator项目.问题是SensorSimulator的API看起来与Android的不同.因此,如果我在真实或虚拟设备中,我将使用不同的代码.它是否存在以编程方式检测它的方法?或者您知道其他解决方案吗?

Mar*_*ski 7

您可以尝试通过检查Build.DEVICE哪个不是真实设备应该读取generic或检查Build.PRODUCT哪个将是sdk.


Ner*_*een 6

对于仿真器,以下情况属实......

Build.FINGERPRINT.startsWith("generic")
Run Code Online (Sandbox Code Playgroud)

要么

boolean inEmulator = "generic".equals(Build.BRAND.toLowerCase());
Run Code Online (Sandbox Code Playgroud)