Google Play 위치 서비스를 사용하여 사용자가 경로를 따라 이동하는 데 도움이되지만 Location
객체에서 나침반 보유 정보를 얻지 못하고 있습니다. onLocationChanged(Location location)
에 있습니다. 항상 hasBearing()
과 getBearing()
에서 거짓 결과가 발생하면 LocationListener
구현에서 0.0이 반환됩니다.위치 없음 Google Play 위치 서비스를 사용할 때 부담이 있습니까?
다음은 잡음 코드를 제거한 코드입니다. LocationRequest
을 만드는 데 사용 된 매개 변수를 보여줍니다. 코드는 LocationListener
구현으로 매우 행복하게 이동하므로 시스템의 해당 부분에 대한 작동 아키텍처가 나타납니다.
public class IncrementalNavigator {
private LocationClient locationClient;
private LocationRequest locationRequest;
private float headingBearing = 0.0f;
private LocationListener locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
Log.d(TAG, "The location has changed to " + location.toString());
if (location.hasBearing()) {
// I never see this updated.
headingBearing = location.getBearing();
}
// ...
}
};
public IncrementalNavigator(LocationClient locationClient) {
this.locationRequest = LocationRequest.create();
this.locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
this.locationRequest.setInterval(5000);
this.locationRequest.setFastestInterval(1000);
this.locationClient = locationClient;
this.headingBearing = locationClient
.getLastLocation()
.getBearing();
// ...
}
public void setWalkingDirections(WalkingDirections walkingDirections) {
// ...
if (walkingDirections != null) {
// ...
this.locationClient.requestLocationUpdates(locationRequest, locationListener);
} else {
this.locationClient.removeLocationUpdates(locationListener);
}
}
// ...
}
내 AndroidManifest.xml에 다음과 같은 권한을 선언
<uses-permission android:name="android.permission.ACCESS_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET"/>
내가 안드로이드 4.3과 갤럭시 넥서스에 Service
의 일환으로 코드를 실행하고 있습니다. Wi-Fi가 켜져 있고 GPS가 켜져 있습니다. 제 질문은 : 베어링 업데이트를받지 못하는 이유는 무엇입니까?