개발 가이드

Local Navigation

오류 처리(BlackBerry JSR 179 확장 버전)

BlackBerry JSR 179 확장 버전에서 제공되는 getStatus() 메소드를 호출하여 GPS 수정값 요청의 상태를 확인할 수 있습니다. BlackBerryLocation.GPS_ERROR가 반환된 경우, BlackBerryLocation.getError()를 호출하여 오류 값을 검색할 수 있습니다.
  1. 필요한 클래스와 인터페이스를 가져옵니다.
    import net.rim.device.api.gps.*;
    import javax.microedition.location.*;
  2. 클래스와 생성자를 만듭니다.
    public class handleGPS
    {
        public handleGPS()
        {
        }
    }
  3. 생성자에서 try/catch 블록을 만듭니다. 이 블록에서 GPS 모드를 생성자에 전달하여 BlackBerryCriteria 클래스의 인스턴스를 만듭니다.
    try
    {
        BlackBerryCriteria myCriteria =
          new BlackBerryCriteria(GPSInfo.GPS_MODE_ASSIST);
    }
    catch ( UnsupportedOperationException ex )
    {
        return;
    }
  4. try/catch 블록에서 다른 try/catch 블록을 만듭니다. 이 블록에서 BlackBerryCriteria 객체를 검색하여 BlackBerryLocationProvider 클래스의 인스턴스를 만듭니다. setLocationListener()를 호출하여 위치 수신기를 지정합니다.
    try
    {
        BlackBerryLocationProvider myProvider =
            (BlackBerryLocationProvider)LocationProvider.getInstance(myCriteria);
        myProvider.setLocationListener(new myLocationListener(), -1, -1, -1);
    }
    catch ( LocationException lex )
    {
        return;
    }
  5. 클래스에서 LocationListener를 구현하는 static 클래스를 만듭니다. locationUpdated()providerStateChanged() 클래스를 구현합니다.
    private static class myLocationListener implements LocationListener
    {
        public void locationUpdated(LocationProvider provider, Location location)
        {
        }
        public void providerStateChanged(LocationProvider provider, int newState)
        {
        }
    }
  6. locationUpdated()에서 location 매개 변수가 BlackBerryLocation의 인스턴스인지 확인합니다. 그런 경우 location 매개 변수를 전달하여 로컬 BlackBerryLocation 객체를 만듭니다. getStatus()를 호출하여 GPS 위치 요청의 상태를 검색한 다음 반환된 상태를 처리합니다.
    if (location instanceof BlackBerryLocation)
    {
        BlackBerryLocation bLoc = (BlackBerryLocation)location;
        switch(bLoc.getStatus())
        {
            case BlackBerryLocation.GPS_ERROR:
                int gpsStatus = bLoc.getError();
                break;
            case BlackBerryLocation.FAILOVER_MODE_ON:
            case BlackBerryLocation.SUBSEQUENT_MODE_ON:
            case BlackBerryLocation.GPS_FIX_PARTIAL:
            case BlackBerryLocation.GPS_FIX_COMPLETE:
                break;
        }
    }

코드 샘플: 오류 처리(BlackBerry JSR 179 확장 버전)

import net.rim.device.api.gps.*;
import javax.microedition.location.*;
public class handleGPS
{
    public handleGPS()
    {
        try
        {
            BlackBerryCriteria myCriteria =
              new BlackBerryCriteria(GPSInfo.GPS_MODE_ASSIST);
            try
            {
                BlackBerryLocationProvider myProvider =
                  (BlackBerryLocationProvider)
                    LocationProvider.getInstance(myCriteria);
                myProvider.setLocationListener
                  (new myLocationListener(), -1, -1, -1);
            }
            catch ( LocationException lex )
            {
                return;
            }
        }
        catch ( UnsupportedOperationException ex )
        {
            return;
        }
    }
    private static class myLocationListener implements LocationListener
    {
        public void locationUpdated
          (LocationProvider provider, Location location)
        {
            if (location instanceof BlackBerryLocation)
            {
                BlackBerryLocation bLoc = (BlackBerryLocation)location;
                switch(bLoc.getStatus())
                {
                    case BlackBerryLocation.GPS_ERROR:
                        int gpsStatus = bLoc.getError();
                        break;
                    case BlackBerryLocation.FAILOVER_MODE_ON:
                    case BlackBerryLocation.SUBSEQUENT_MODE_ON:
                    case BlackBerryLocation.GPS_FIX_PARTIAL:
                    case BlackBerryLocation.GPS_FIX_COMPLETE:
                        break;
                }
            }
        }
        public void providerStateChanged
          (LocationProvider provider, int newState)
        {
        }
    }
}
이전 주제: 오류 처리(JSR 179)

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