안드로이드 개발 질문/답변
(글 수 45,052)
alocationManager.requestLocationUpdates 이 메서드가 있는데 이게 거리 마다 받거나 시간마다 받는건데
핸드폰에다 넣어서 해보니까 값이 없데이트가 안되더라구요 핸들러 값 돌려도 안돼고
GPS 범위를 많이 잡아서 그런건가요?
알려주십시용~ㅠ,ㅠ
아님 실시간으로 GPS 받는것이 따로 있나요???
package com.Real;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
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.os.Handler;
import android.os.Message;
import android.widget.TextView;
public class MyLocal extends Activity implements LocationListener{
private TextView myLocationText;
double lat;
double lng;
Date lastUpdate;
Handler hadle = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myLocationText = (TextView)findViewById(R.id.TextView01);
LocationManager alocationManager;
alocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String provider = alocationManager.getBestProvider(criteria, true);
Location location = alocationManager.getLastKnownLocation(provider);
updateWithNewLocation(location);
alocationManager.requestLocationUpdates(provider, //1. 베스트프로바이더
5000, //2. 1초마다?
10, //3. 위치가 변경될때 마다
this); //4. 위치가 변경되면 어디다 알려주냐?
}
public void updateWithNewLocation(Location mLocation)
{
/*
String latLongString = null;
if(mLocation != null)
{
lat = mLocation.getLatitude();
lng = mLocation.getLongitude();
latLongString = "위도"+lat+"\n경도"+lng;
}
else
{
latLongString = "위치를 찾을수 없다";
}
myLocationText.setText("당싱의 현재 위치는 : \n"+latLongString);
*/
lat = mLocation.getLatitude();
lng = mLocation.getLongitude();
lastUpdate = new Date(System.currentTimeMillis());
Timer updateTimer = new Timer("velocityUpdate");
updateTimer.scheduleAtFixedRate(new TimerTask(){
public void run(){
hadle.post(new Runnable() {
public void run()
{
myLocationText.setText("위도 : "+lat+"\n 경도 : "+lng);
}
});
}
}, 0, 1000);
}
@Override
public void onLocationChanged(Location location) {
updateWithNewLocation(location);
}
@Override
public void onProviderDisabled(String provider) {
updateWithNewLocation(null);
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
}



