개발 가이드

Local Navigation

위치 클래스를 사용하여 위치 정보 검색

GPS 수정값을 요청하여 위도, 경도, 속도, 진로 방향, 시간 스탬프 및 BlackBerry 단말기가 추적 중인 위성의 수를 검색할 수 있습니다.

  1. 필요한 클래스를 가져옵니다.
    import javax.microedition.location.*;
  2. 클래스와 생성자를 만듭니다.
    public class handleGPS
    {
        public handleGPS()
        {
        }
    }
  3. 클래스에서, 검색하는 위치 정보의 각 항목과 스레드에 대한 static 필드를 선언합니다.
    static GPSThread gpsThread;
    static double latitude;
    static double longitude;
    static float  heading;
    static float  velocity;
    static long   timeStamp;
    static String nmeaString;
  4. 생성자에서 스레드를 만들고 시작합니다.
    gpsThread = new GPSThread();
    gpsThread.start();
  5. 클래스에서 Thread를 확장하는 private static 클래스를 만들고 run() 메소드를 만듭니다.
    private static class GPSThread extends Thread
    {
       public void run()
       {
       }
    }
  6. run()에서 Criteria 클래스의 인스턴스를 만듭니다. setCostAllowed(false)를 호출하여 자치 모드를 지정합니다.
    Criteria myCriteria = new Criteria();
    myCriteria.setCostAllowed(false);
  7. run()에서 try/catch 블록을 만듭니다. 이 블록에서 Criteria 객체의 인스턴스를 가져와서 LocationProvider 클래스의 인스턴스를 만듭니다. 이 블록 내에서 try/catch 블록을 만들고 Location 클래스의 인스턴스를 만들어 300초 시간 제한 만료를 포함한 현재 GPS 수정값을 검색합니다. 필드를 채우고 getExtraInfo("application/X-jsr179-location-nmea")를 호출하여 위성의 수를 지정합니다.
    try
    {
       LocationProvider myLocationProvider =
          LocationProvider.getInstance(myCriteria);
       try
       {
          Location myLocation = myLocationProvider.getLocation(300);
          latitude   = myLocation.getQualifiedCoordinates().getLatitude();
          longitude  = myLocation.getQualifiedCoordinates().getLongitude();
          velocity   = myLocation.getSpeed();
          heading    = myLocation.getCourse();
          timeStamp  = myLocation.getTimestamp();
          nmeaString = myLocation.getExtraInfo
             ("application/X-jsr179-location-nmea");
       }
       catch ( InterruptedException iex )
       {}
       catch ( LocationException lex )
       {}
    }
    catch ( LocationException lex )
    {}
    return;

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