개발 가이드

Local Navigation

BlackBerryLocationProvider 클래스를 사용하여 위치 추적 제어

net.rim.device.api.gps.BlackBerryLocationProvider 클래스를 사용하여 위치 추적을 일시 중지, 다시 시작 또는 중지할 수 있습니다.
  1. 필요한 클래스를 가져옵니다.
    import net.rim.device.api.gps.*;
    import javax.microedition.location.*;
  2. 새 클래스와 생성자를 만듭니다.
    public class handleGPS
    {
        static BlackBerryLocationProvider myProvider;
        public handleGPS()
        {
        }
    }
  3. 생성자에서 try/catch 블록을 만듭니다. 블록에서 생성자에 GPS 모드를 매개 변수로 전달하여 BlackBerryCriteria 클래스의 인스턴스를 만듭니다.
    try
    {
        BlackBerryCriteria myCriteria =
          new BlackBerryCriteria(GPSInfo.GPS_MODE_AUTONOMOUS);
    }
    catch ( UnsupportedOperationException uoex )
    {
        return;
    }
  4. 블록의 try 파트에서 새 try/catch 블록을 만듭니다. 이 블록에서 BlackBerryCriteria 클래스의 인스턴스를 검색하여 BlackBerryLocationProvider 클래스의 인스턴스를 만듭니다. LocationListener 추가를 위해 간격 값, 시간 제한 값 및 최대 기간을 매개 변수로 전달하여 setLocationListener()를 호출합니다.
    try
    {
        myProvider = (BlackBerryLocationProvider)
          LocationProvider.getInstance(myCriteria);
        myProvider.setLocationListener(new handleGPSListener(), 10, -1, -1);
    }
    catch ( LocationException lex )
    {
        return;
    }
    myProvider.pauseLocationTracking(30);
    myProvider.resumeLocationTracking();
    myProvider.stopLocationTracking();
  5. try/catch 블록의 외부에서 pauseLocationTracking(), resumeLocationTracking() 또는 stopLocationTracking()을 호출하여 위치 추적을 일시 중지, 다시 시작 또는 중지합니다.
    myProvider.pauseLocationTracking(30);
    myProvider.resumeLocationTracking();
    myProvider.stopLocationTracking();
  6. 클래스에서 LocationListener 인터페이스를 구현합니다. locationUpdated() 메소드 및 providerStateChanged() 메소드에 대해 기본 구조를 구현합니다.
    public static class handleGPSListener implements LocationListener
    {
        public void locationUpdated(LocationProvider provider, Location location)
        {
            if (location.isValid())
            {}
            else
            {}
        }
        public void providerStateChanged(LocationProvider provider, int newState)
        {
            if (newState == LocationProvider.AVAILABLE)
            {}
            else if (newState == LocationProvider.OUT_OF_SERVICE)
            {}
            else if (newState == LocationProvider.TEMPORARILY_UNAVAILABLE )
            {}
        }
    }

이 정보가 도움이 되었습니까? 의견을 보내 주십시오.