在我的Android应用程序中,我必须使用加速计和其他传感器。由于这些传感器不是由虚拟设备模拟的,我必须使用SensorSimulator项目。问题是SensorSimulator的API看起来与Android的不同。所以如果我在真实或虚拟设备中,我必须使用不同的代码。它是否存在以编程方式检测它的方式?或者你知道其他解决方案?是否有可能以编程方式检测是真实还是虚拟Android设备?
2
A
回答
6
下面是一个模拟器真的......
Build.FINGERPRINT.startsWith("generic")
或
boolean inEmulator = "generic".equals(Build.BRAND.toLowerCase());
7
您可以尝试,通过检查Build.DEVICE
这对于不是真正的设备将读取generic
或检查Build.PRODUCT
这将是sdk
。
+0
您已经完成了我的一天:) – hrules6872
+0
Build.BRAND和Build.DEVICE可以是用于x86架构和Build的“generic_x86”。 PRODUCT可以是“sdk_google_phone_x86” –
0
我知道这是一个老问题,但只是有同样的问题。我修改Nermeen回答了一下,因为它不工作了:
boolean inEmulator = Build.FINGERPRINT.contains("generic");
0
有这么多的方式来实现这一目标,如: (1)执行cat/proc/cpuinfo中,仿真器包含了“金鱼”,真正的设备包含“Qualcomm MSM xxxx”等。 (2)的特征列举如下显示,这是一个仿真器:
private static String[] known_pipes={
"/dev/socket/qemud",
"/dev/qemu_pipe"
};
private static String[] known_qemu_drivers = {
"goldfish"
};
private static String[] known_files = {
"/system/lib/libc_malloc_debug_qemu.so",
"/sys/qemu_trace",
"/system/bin/qemu-props"
};
private static String[] known_numbers = { "15555215554", "15555215556",
"15555215558", "15555215560", "15555215562", "15555215564",
"15555215566", "15555215568", "15555215570", "15555215572",
"15555215574", "15555215576", "15555215578", "15555215580",
"15555215582", "15555215584", };
private static String[] known_device_ids = {
"000000000000000"// default ID on emulator
};
参见文章“睡眠:自动生成启发式技术来检测的Android仿真器”为更多资料。
相关问题
- 1. 检查Android手机是模拟器还是真实设备
- 2. 是否可以通过Chrome以编程方式创建虚拟MIDI设备?
- 3. 以编程方式检测Android设备是否有SD卡插槽
- 4. Android应用程序的虚拟设备上运行,但不是真实设备
- 5. 检测Android设备是否是用java
- 6. 我可以检测主机是否是虚拟机?
- 7. 是否有可能以编程方式运行specflow测试?
- 8. 是否有可能检测到Android设备上的USB调试?
- 9. 是否有可能检测并排安装的Android设备
- 10. 以编程方式模拟onFling()而不是检测它(Android)
- 11. 是否有可能以编程方式设置Qtip的位置?
- 12. 是否有可能以编程方式修改ATS设置
- 13. 是否有可能以编程方式设置MasterType?
- 14. 是否有可能以编程方式更新配置设置?
- 15. 是否有可能以编程方式升级Android固件?
- 16. 有没有一种方法可以真正检测Internet Explorer是PHP还是Javascript
- 17. 是否有可能以编程方式与蓝牙设备配对?
- 18. 是否有可能在安卓设备中以编程方式锁定SIM卡
- 19. 是否有可能以编程方式锁定Windows Phone 7设备?
- 20. 是否有可能以编程方式锁定Windows Phone 7设备
- 21. 确定Android设备是否以编程方式生根?
- 22. Android设备是否被硬件加密?以编程方式
- 23. 是否有可能使用StructureMap.AutoMocking测试内部虚拟方法
- 24. 是否有可能判断它是否在模拟器或应用程序中的真实设备上运行
- 25. 是否有可能确定Android设备是插入计算机还是电源?
- 26. 是否可以像仿真器一样显示真实设备?
- 27. 是否有可能以编程方式检测到Mac桌面上的点击?
- 28. java虚拟方法:功能还是bug?
- 29. 是否可以模拟FTDI USB设备?
- 30. 是否有(免费)windows测试/虚拟打印设备?
请参阅http://code.google.com/p/openintents/wiki/SensorSimulator – njzk2