안드로이드 개발 질문/답변
(글 수 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;
}
}



