Guia do desenvolvedor

Local Navigation

Manipular erros (extensões BlackBerry para JSR 179)

Você pode verificar o status de uma solicitação de reparo de GPS invocando o método getStatus() que é fornecido nas extensões do BlackBerry para JSR 179. Se o retorno for BlackBerryLocation.GPS_ERROR, você pode carregar o valor de erro invocando BlackBerryLocation.getError().
  1. Importe as classes e interfaces necessárias.
    import net.rim.device.api.gps.*;
    import javax.microedition.location.*;
  2. Crie uma classe e um construtor.
    public class handleGPS
    {
        public handleGPS()
        {
        }
    }
  3. No construtor, crie um bloco try/catch. Neste bloco, crie uma instância da classe BlackBerryCriteria fornecendo o modo de GPS para o construtor.
    try
    {
        BlackBerryCriteria myCriteria =
          new BlackBerryCriteria(GPSInfo.GPS_MODE_ASSIST);
    }
    catch ( UnsupportedOperationException ex )
    {
        return;
    }
  4. No bloco try/catch, crie outro bloco try/catch. Nesse bloco, crie uma instância da classe BlackBerryLocationProvider carregando o objeto BlackBerryCriteria. Invoque setLocationListener() para especificar o ouvinte da localização.
    try
    {
        BlackBerryLocationProvider myProvider =
            (BlackBerryLocationProvider)LocationProvider.getInstance(myCriteria);
        myProvider.setLocationListener(new myLocationListener(), -1, -1, -1);
    }
    catch ( LocationException lex )
    {
        return;
    }
  5. Na classe, crie uma classe estática que implemente LocationListener. Implemente locationUpdated() e providerStateChanged().
    private static class myLocationListener implements LocationListener
    {
        public void locationUpdated(LocationProvider provider, Location location)
        {
        }
        public void providerStateChanged(LocationProvider provider, int newState)
        {
        }
    }
  6. Em locationUpdated(), verifique se o parâmetro location é uma instância de BlackBerryLocation. Caso seja, crie um objeto BlackBerryLocation local fornecendo o parâmetro location. Invoque getStatus() para carregar o status da solicitação da localização GPS e processe o status retornado.
    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;
        }
    }

Exemplo de código: Manipular erros (extensões BlackBerry para 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)
        {
        }
    }
}
Tópico anterior: Manipular erros (JSR 179)

Estas informações foram úteis? Gostaríamos de receber seus comentários.