제가 구글맵 처음하는거라 그냥 예제를 복사붙여넣기해서 수정했는데 키면꺼지네요..
	public class Map extends FragmentActivity implements LocationListener {
	    private GoogleMap mmap;
	    private LocationManager locationManager;
	    private String provider;
	    @Override
	    protected void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);
	        setContentView(R.layout.map);
	        
	       GooglePlayServicesUtil.isGooglePlayServicesAvailable(Map.this);
	        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
	        Criteria criteria = new Criteria();
	        provider = locationManager.getBestProvider(criteria, true);
	        
	        if(provider==null){  //위치정보 설정이 안되어 있으면 설정하는 엑티비티로 이동합니다
	          new AlertDialog.Builder(Map.this)
	       .setTitle("위치서비스 동의")
	       .setNeutralButton("이동" ,new DialogInterface.OnClickListener() {
	@Override
	public void onClick(DialogInterface dialog, int which) {
	startActivityForResult(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS), 0);
	}
	}).setOnCancelListener(new DialogInterface.OnCancelListener() {
	@Override
	public void onCancel(DialogInterface dialog) {
	finish();
	}
	})
	       .show();
	        }else{   //위치 정보 설정이 되어 있으면 현재위치를 받아옵니다
	     locationManager.requestLocationUpdates(provider, 1, 1, Map.this);
	         setUpMapIfNeeded();
	        }
	        
	    }
	    
	    @Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {//위치설정 엑티비티 종료 후 
	super.onActivityResult(requestCode, resultCode, data);
	switch (requestCode) {
	case 0:
	locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
	       Criteria criteria = new Criteria();
	       provider = locationManager.getBestProvider(criteria, true);
	       if(provider==null){//사용자가 위치설정동의 안했을때 종료 
	finish();
	}else{//사용자가 위치설정 동의 했을때 
	locationManager.requestLocationUpdates(provider, 1L, 2F, Map.this);
	        setUpMapIfNeeded();
	}
	break;
	}
	}
	    
	    @Override
	public void onBackPressed() {
	this.finish();
	}
	 
	    @Override
	    protected void onResume() {
	        super.onResume();
	        setUpMapIfNeeded();
	        
	    }
	 
	    @Override
	    protected void onPause() {
	        super.onPause();
	        locationManager.removeUpdates(this);
	    }
	    
	    private void setUpMapIfNeeded() {
	if (mmap == null) {
	mmap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map2)).getMap();
	if (mmap != null) {
	setUpMap();
	}
	}
	}
	    
	    private void setUpMap() {
	     mmap.setMyLocationEnabled(true);
	mmap.getMyLocation();
	 
	}
	 
	 
	 
	    boolean locationTag=true;
	    
	    @Override
	    public void onLocationChanged(Location location) {
	     if(locationTag){//한번만 위치를 가져오기 위해서 tag를 주었습니다
	     Log.d("myLog"  , "onLocationChanged: !!"  + "onLocationChanged!!");
	       double lat =  location.getLatitude();
	       double lng = location.getLongitude();
	    
	Toast.makeText(Map.this, "위도  : " + lat +  " 경도: "  + lng ,  Toast.LENGTH_SHORT).show();
	      locationTag=false;
	     }
	 
	    }