Android 地磁场不工作
Android GeomagneticField not working
我在使用 Android 与位置相关的 API 时遇到了一些问题。让我切入正题:
GeomagneticField geoField = new GeomagneticField(20f, 20f, 0, System.currentTimeMillis());
float declination = geoField.getDeclination();
这些都是测试值,没有任何意义。问题是 getDeclination()
总是 returns 0,不管我用来实例化 GeomagneticField 的纬度、经度或高度值是多少。
我假设实例已成功创建(否则它会抛出某种异常)。那怎么可能呢?
我终于明白了。使用 Android API 进行单元测试时,需要使用检测框架。我单独使用 JUnit,因此出现故障。我通过使用 Roboelectric 解决了这个问题,这是一种模拟 Android 平台的工具,允许您 运行 使用 Android API 的单元测试,而无需每次都启动设备模拟器。
我在使用 Android 与位置相关的 API 时遇到了一些问题。让我切入正题:
GeomagneticField geoField = new GeomagneticField(20f, 20f, 0, System.currentTimeMillis());
float declination = geoField.getDeclination();
这些都是测试值,没有任何意义。问题是 getDeclination()
总是 returns 0,不管我用来实例化 GeomagneticField 的纬度、经度或高度值是多少。
我假设实例已成功创建(否则它会抛出某种异常)。那怎么可能呢?
我终于明白了。使用 Android API 进行单元测试时,需要使用检测框架。我单独使用 JUnit,因此出现故障。我通过使用 Roboelectric 解决了这个问题,这是一种模拟 Android 平台的工具,允许您 运行 使用 Android API 的单元测试,而无需每次都启动设备模拟器。