我的代码如下,控制未达到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();
}
答案 0 :(得分:1)
可能有以下几种原因:
要开始进行故障排除,请在状态回调中打印出参数:
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。
希望这会有所帮助,您可以开始接收位置更新!