안드로이드 개발 질문/답변
(글 수 45,052)
//////////////OnCreate내용
mapView.setBuiltInZoomControls(true);
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
// Net Enabled or not.
connectManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
provider = locationManager.getBestProvider(criteria, true);
if(connectManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected() == false && connectManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnected() == false) {
Toast.makeText(this, R.string.map_data_error, Toast.LENGTH_LONG).show();
return false;
}
locationManager.requestLocationUpdates(provider, 1000, 1, mLocationListeners[0]);
Location location = locationManager.getLastKnownLocation(provider);
if(locationManager.isProviderEnabled(provider) == false || locationManager.getLastKnownLocation(provider) == null){
locationManager.requestLocationUpdates(provider, 1000, 1, mLocationListeners[1]);
location = locationManager.getLastKnownLocation(provider);
if(locationManager.isProviderEnabled(provider) == false || locationManager.getLastKnownLocation(provider) == null){
Toast.makeText(this, R.string.map_gps_error, Toast.LENGTH_LONG).show();
}
}
mapCtrl = mapView.getController();
mapView.setSatellite(false);
mapView.displayZoomControls(false);
mapCtrl.setZoom(17);
updateWithNewLocation(location);
//////////////OnCreate내용
private void updateWithNewLocation(Location location) {
if(location != null) {
Double geoLat = location.getLatitude() * 1E6;
Double getLng = location.getLongitude() * 1E6;
GeoPoint point = new GeoPoint(geoLat.intValue(), getLng.intValue());
mapCtrl.animateTo(point);
}
}
이런식으로 책 보고 해봤는데
애뮬에서도 폰에서도 location값이 null로 들어가서 현재 위치를 찾지 못합니다... 맵 자체는 뜨구요..
왜 이런거죠?ㅠㅠ
mapView.setBuiltInZoomControls(true);
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
// Net Enabled or not.
connectManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
provider = locationManager.getBestProvider(criteria, true);
if(connectManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected() == false && connectManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnected() == false) {
Toast.makeText(this, R.string.map_data_error, Toast.LENGTH_LONG).show();
return false;
}
locationManager.requestLocationUpdates(provider, 1000, 1, mLocationListeners[0]);
Location location = locationManager.getLastKnownLocation(provider);
if(locationManager.isProviderEnabled(provider) == false || locationManager.getLastKnownLocation(provider) == null){
locationManager.requestLocationUpdates(provider, 1000, 1, mLocationListeners[1]);
location = locationManager.getLastKnownLocation(provider);
if(locationManager.isProviderEnabled(provider) == false || locationManager.getLastKnownLocation(provider) == null){
Toast.makeText(this, R.string.map_gps_error, Toast.LENGTH_LONG).show();
}
}
mapCtrl = mapView.getController();
mapView.setSatellite(false);
mapView.displayZoomControls(false);
mapCtrl.setZoom(17);
updateWithNewLocation(location);
//////////////OnCreate내용
private void updateWithNewLocation(Location location) {
if(location != null) {
Double geoLat = location.getLatitude() * 1E6;
Double getLng = location.getLongitude() * 1E6;
GeoPoint point = new GeoPoint(geoLat.intValue(), getLng.intValue());
mapCtrl.animateTo(point);
}
}
이런식으로 책 보고 해봤는데
애뮬에서도 폰에서도 location값이 null로 들어가서 현재 위치를 찾지 못합니다... 맵 자체는 뜨구요..
왜 이런거죠?ㅠㅠ