안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요 gps 관련드립니다
Main.class 와 GPS를 구연한 Agps.class 를 구연하였습니다.
Main에서 Agps를 요청 하여 Agps에 Toast로 값을 출력 위,경도가 잘 출력됩니다
제가 알고싶은 것은
위도경도가 변할시 즉 onLocationChanged() 이 호출될시
경,위도를 positionXY() 를 이용하여 Main.class 에서 그배열의 값을 출력 하고싶습니다.
이걸 어떻게 해야 Main에서 리턴 받을 수있을까요?
간단한 로직 이나 힌트 부탁 드립니다.
Agps.class 소스입니다
Main.class 와 GPS를 구연한 Agps.class 를 구연하였습니다.
Main에서 Agps를 요청 하여 Agps에 Toast로 값을 출력 위,경도가 잘 출력됩니다
제가 알고싶은 것은
위도경도가 변할시 즉 onLocationChanged() 이 호출될시
경,위도를 positionXY() 를 이용하여 Main.class 에서 그배열의 값을 출력 하고싶습니다.
이걸 어떻게 해야 Main에서 리턴 받을 수있을까요?
간단한 로직 이나 힌트 부탁 드립니다.
Agps.class 소스입니다
package Module.GPS; import java.util.HashMap; import android.content.Context; import android.location.Criteria; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.widget.Toast; public class MGps { LocationManager lmanager; Context con; String BestProvider; double setLatitude ; //위도 double setLongitude; //경도 double setAltitude ; //고도 HashMap<String,Double> map; public MGps(Context con){ this.con = con; locationMg(); } public void locationMg(){ lmanager = (LocationManager)con.getSystemService(Context.LOCATION_SERVICE); //최상의 제공자 Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.NO_REQUIREMENT); criteria.setPowerRequirement(Criteria.NO_REQUIREMENT); criteria.setAltitudeRequired(false); criteria.setCostAllowed(false); boolean gps_Status = lmanager.isProviderEnabled(LocationManager.GPS_PROVIDER); boolean nwk_Status = lmanager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); if(gps_Status == false && nwk_Status == false ){ Toast.makeText(con, "위치 공급자에 연결 되어있지 않습니다.", 0).show(); }else{ Toast.makeText(con, "위치 공급자에 연결 되어습니다.", 0).show(); BestProvider = lmanager.getBestProvider(criteria, true); lmanager.requestLocationUpdates(BestProvider, 0, 0, loListener); } } LocationListener loListener = new LocationListener(){ @Override public void onLocationChanged(Location location) { setLatitude = location.getLatitude(); //위도 setLongitude = location.getLongitude(); //경도 setAltitude = location.getAltitude(); //고도 Toast.makeText(con, ""+setLatitude, 0).show(); } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } }; public HashMap<String,Double> positionXY(){ // HashMap<String,Double> map = new HashMap<String,Double>(); // map.put("latitude" , setLatitude); // map.put("longitudee", setLongitude); // map.put("altitude" , setAltitude); return map; } }