在android中使用IndoorAtlas sdk无法长时间使用lat

时间:2016-12-06 10:09:03

标签: android google-maps geolocation location google-indoor-maps

我的代码如下,控制未达到onLocationChanged方法,我使用的是物理设备而不是模拟器。请提出你的建议,谢谢。

private IALocationListener locationListener = new IALocationListener() {
    @Override
    public void onLocationChanged(IALocation location) {
        Log.d(TAG, "Latitude: " + location.getLatitude());
        Log.d(TAG, "Longitude: " + location.getLongitude());
    }

在onStatusChanged处达到控制但在onLocationChanged

上未达到
    @Override
    public void onStatusChanged(String s, int i, Bundle bundle) {
        Log.d("onStatus","0");
    }
};

的onResume

@Override
protected void onResume() {
    super.onResume();
    locationManager.requestLocationUpdates(IALocationRequest.create(),locationListener);
}

的onPause

@Override
protected void onPause() {

    super.onPause();
    locationManager.removeLocationUpdates(locationListener);
}

的onDestroy

@Override
protected void onDestroy() {
    locationManager.destroy();
    super.onDestroy();
}

1 个答案:

答案 0 :(得分:1)

可能有以下几种原因:

  • 您正在测试的地点需要按照http://docs.indooratlas.com/app/
  • 中的说明进行映射
  • 一旦映射,云端"磁图"需要按照上述文件中步骤3的描述生成
  • 您需要拥有至少Wifi的Android设备,但最好是加速度计,陀螺仪和磁力计
  • 需要在您的设备上启用Wifi扫描,以便在您的设备上启用位置服务
  • 您已按照http://docs.indooratlas.com/android/getting-started.html
  • 中的说明设置了IndoorAtlas SDK

要开始进行故障排除,请在状态回调中打印出参数:

public void onStatusChanged(String s, int i, Bundle bundle) {
        Log.d(LOG_TAG, "onStatusChanged, code: " + i + ", args: " + bundle);
}

并将状态代码与在http://docs.indooratlas.com/android/2.2.2/com/indooratlas/android/sdk/IALocationManager.html中找到的状态代码进行比较。

另一件事是要注意任何带有标记" IASDK"的日志语句:

adb logcat *:E IASDK:V

在GitHub中对同一事项进行了相当广泛的讨论:https://github.com/IndoorAtlas/android-sdk-examples/issues/5

希望这会有所帮助,您可以开始接收位置更新!