android-如何以编程方式区分仿真器和设备

时间:2011-07-13 14:50:01

标签: android

在我的应用程序中,有一个按钮。如果您点击该按钮,我们将获得当前位置。基于此当前位置,我正在做一些操作。在设备中它正常工作。但是在模拟器中我们没有获得当前位置,这就是为什么我使用模拟器的一些默认纬度和经度值。但我想区分模拟器和设备。这意味着我们在设备中运行意味着它需要地理编码位置。假设我们在模拟器中运行意味着它采用默认的纬度和经度值。如何以编程方式实现它。任何人都可以帮助我。

感谢

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

我的数字罗盘问题完全相同。我通过编写和使用以下方法解决了这个问题:

public static boolean areOrientationSensorsAvailable(Context ctx) {
    final SensorManager manager = (SensorManager) ctx.getSystemService(Context.SENSOR_SERVICE);
    final List<Sensor> sensorsMagnet = manager.getSensorList(Sensor.TYPE_MAGNETIC_FIELD);
    final List<Sensor> sensorsAccel  = manager.getSensorList(Sensor.TYPE_ACCELEROMETER);

    return (sensorsMagnet.size() != 0) && (sensorsAccel.size() != 0);
}

这对你也有用:如果没有传感器,你就在模拟器上。 这不是“干净的”(不适用于我所说的已发布的应用程序),但这适用于测试。