1
먼저 중복에 대해 사과드립니다.이 질문을 받았지만 기존 답변을 따르려고했지만 작동하지 않습니다. 따라서 제 코드를보고 무엇이 잘못되었거나 누락되었다고 말하면 제게 많은 도움이 될 것입니다.Android 앱에서 현재 위치를 얻는 방법은 무엇입니까?
여기 활동은 로그 만 사용합니다 (GUI 없음).
import android.app.Activity;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
public class MainActivity extends Activity implements LocationListener {
private LocationManager lManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lManager = (LocationManager) getSystemService(LOCATION_SERVICE);
if (lManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER))
lManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,
0, 0, this);
else
Log.i("Test", "network provider unavailable");
Location lastKnownLocation =
lManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (lastKnownLocation != null) {
Log.i("Test", lastKnownLocation.getLatitude() + ", "
+ lastKnownLocation.getLongitude());
lManager.removeUpdates(this);
} else
Log.i("Test", "null");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void onLocationChanged(Location location) {
Log.i("Test", "location changed: " + location.getLatitude() + ", "
+ location.getLongitude());
}
public void onProviderDisabled(String provider) {
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}
응용 프로그램을 실행하려고하면 모든 것이 작동하지만 위도와 경도는 로그에 표시되지 않습니다. 나는 테스트를 위해 네트워크 위치가있는 실제 장치를 사용하고 있습니다.
코드는 정상적으로 보입니다. (사소한 변경 : 업데이트를 요청하기보다는 마지막으로 알려진 위치가있는 경우 업데이트를 취소 할 수 있습니다. 마지막으로 알고있는 위치가 있는지 묻고 필요한 경우에만 업데이트를 요청합니다.) 위치를 가져올 수 없음 신호가 약하거나 네트워크가 오래되었거나 오래 기다리지 않았기 때문에 ... GPS를 사용해 보셨습니까? – Sam
GPS보다 네트워크 속도가 느려지므로 GPS를 사용하지 않아 정확성이 필요하지 않습니다. 게다가 테스트 및 로그보기를 위해 PC에 연결된 실내 장치가 필요합니다. 나는 그것이 네트워크를 통해 행해질 수 있기를 바랬으며, 나는 꽤 오래 기다렸다. 얼마나 걸릴 수 있습니까? –
이상적인 조건에서 위치를 잡는 데는 몇 분 밖에 걸리지 않습니다. 몇 분이 걸리면 신호가 들리지 않습니다. (나는 밖으로 나가서 수정을해야만한다.) 모의 위치로 시험을 해보자. – Sam