BlackBerry Java Application Location-Based Services Versão: 5.0 Guia do desenvolvedor
Publicado: 2010-04-06 SWD-863631-0401104108-012
Conteúdo 1 Visão geral do GPS... 4 2 Especificando o modo de GPS... 6 Especificando o modo de GPS com o uso de JSR 179... 6 Especificar o modo de GPS (JSR 179)... 6 Propriedades de mapeamento de critérios... 7 Especificando o modo de GPS com o uso de extensões BlackBerry para JSR 179... 8 Modos de GPS... 9 Especificar o modo de GPS com o uso de extensões BlackBerry para JSR 179... 10 Recuperando informações de localização usando o modo de GPS assistido... 11 Modo assistido usando um servidor PDE... 11 Verificar se as informações do servidor PDE são obrigatórias... 11 Especificar informações do servidor PDE... 12 Exemplo de código: Especificando informações do servidor PDE... 13 3 Recuperando um provedor de localização... 15 Recuperar um provedor de localização usando a classe LocationProvider... 15 Controlando o rastreamento usando a classe BlackBerryLocationProvider... 17 Controlar o rastreamento usando a classe BlackBerryLocationProvider... 18 Exemplo de código: Usando a classe BlackBerryLocationProvider para controlar o rastreamento... 19 Recuperar um provedor de localização usando a classe BlackBerryLocationProvider... 21 4 Recuperando a localização de um dispositivo BlackBerry... 22 Recuperar a localização de um dispositivo BlackBerry... 22 Exemplo de código: Recuperando a localização do GPS de um dispositivo BlackBerry... 23 Recuperar a localização de um dispositivo BlackBerry especificando solicitações de ponto contínuas... 24 Exemplo de código: Recuperando a localização do GPS de um dispositivo BlackBerry usando solicitações de ponto contínuas... 25 Recuperando informações de localização usando a classe Location... 26 Recuperar informações de localização usando a classe Location... 27 Recuperando informações de localização usando a classe BlackBerryLocation... 29 Recuperar informações de satélite usando a classe BlackBerryLocation... 30 Alterar os critérios para receber informações de localização... 33 Exemplo de código: Alterando os critérios para recuperar informações de localização... 34
Manipulação de erro... 36 Manipular erros (JSR 179)... 36 Manipular erros (extensões BlackBerry para JSR 179)... 37 5 Geocodificação e geocodificação reversa... 40 Recuperar coordenadas geoespaciais para um endereço usando geocodificação... 40 Recuperar um endereço usando geocodificação reversa... 42 6 BlackBerry Maps... 45 Abrindo o BlackBerry Maps a partir do seu aplicativo... 45 Abrir o BlackBerry Maps usando as configurações padrões... 45 Abrir o BlackBerry Maps usando informações de um contato... 46 Abrir o BlackBerry Maps usando coordenadas específicas... 48 Abrir o BlackBerry Maps usando um ponto de referência... 49 Abrindo o BlackBerry Maps usando um documento de localização... 51 Elemento XML: <lbs>... 51 Elemento XML: <location>... 52 Elemento XML: <getroute>... 54 Exibir e eliminar locais em um mapa usando um documento de localização... 54 Exibir e eliminar uma rota em um mapa usando um documento de localização... 56 Abrir o BlackBerry Maps usando uma pesquisa local... 58 Usando documentos KML com BlackBerry Maps... 59 Elementos KML suportados... 59 Criar um documento KML básico... 60 Exibindo overlays KML em BlackBerry Maps... 60 Abrir o BlackBerry Maps usando um documento KML... 61 Abrindo o BlackBerry Maps pelo BlackBerry Browser... 62 Recuperando uma localização do GPS usando uma página da Web... 62 Recuperar uma localização do GPS usando uma página da Web... 64 Incorporando um mapa em um aplicativo... 65 Incorporar um mapa a um aplicativo... 66 7 Glossário... 71 8 Fornecer comentários... 72 9 Histórico da revisão de documentos... 73
10 Aviso legal... 75
Visão geral do GPS Visão geral do GPS 1 Você pode permitir que o aplicativo de um dispositivo BlackBerry recupere a localização do GPS de um dispositivo BlackBerry. Os valores para as informações de localização são retornados como as coordenadas para latitude, longitude e altitude. O modo de GPS que você irá especificar para recuperar as informações de localização depende do tipo de aplicativo que você deseja desenvolver. Os modos de GPS são: modo autônomo, modo assistido e modo estação rádio-base O modo de GPS pode afetar a velocidade inicial de um ponto de GPS e o nível de precisão do local. Por exemplo, um aplicativo climático talvez especifique um modo estação rádio-base, que pode rapidamente fornecer um local aproximado. Para obter mais informações sobre os modelos de dispositivos BlackBerry e seus respectivos modos de GPS disponíveis, visite http://www.blackberry.com/ knowledgecenterpublic/ e leia o artigo DB-00615. Para recuperar informações de localização, você pode usar a API JSR 179 Location para Java ME no pacote javax.microedition.location ou a extensão BlackBerry para JSR 179 no pacote net.rim.device.api.gps. A API JSR 179 Location para Java ME é compatível com dispositivos BlackBerry que executam o BlackBerry Device Software 4.0.2 ou posterior. As extensões BlackBerry para JSR 179 são compatíveis com dispositivos BlackBerry que executam o BlackBerry Device Software 5.0.0 ou posterior. Para recuperar a localização do GPS de um dispositivo BlackBerry, são necessárias as seguintes ações: Especificando o modo de GPS Recuperando um provedor de localização Fazer uma solicitação de GPS baseada na frequência do ponto de GPS Recuperar a localização do GPS de um dispositivo BlackBerry Exemplo de código: Especificando o modo de GPS /* JSR 179 */ Criteria mycriteria = new Criteria(); /* JSR 179 extension */ BlackBerryCriteria myblackberrycriteria = new BlackBerryCriteria( ); Exemplo de código: Recuperando um provedor de localização /* JSR 179 */ LocationProvider myprovider = LocationProvider.getInstance(myCriteria); /* JSR 179 extension */ BlackBerryLocationProvider myblackberryprovider = (BlackBerryLocationProvider) LocationProvider.getInstance(myBlackBerryCriteria); Exemplo de código: Fazendo uma solicitação de GPS baseada na frequência do ponto de GPS /* * Single GPS fix */ /* JSR 179 */ 4
Visão geral do GPS Location myloc = myprovider.getlocation( ); /* JSR 179 extension */ BlackBerryLocation myblackberryloc = myblackberryprovider.getlocation( ); /* * Continuous GPS fixes */ /* JSR 179 */ myprovider.setlocationlistener( ); /* JSR 179 extension */ myblackberryprovider.setlocationlistener( ); Exemplo de código: Recuperando a localização do GPS de um dispositivo BlackBerry /* JSR 179 */ double lat = myloc.getqualifiedcoordinates().getlatitude(); /* JSR 179 extension */ double lat = myblackberryloc.getqualifiedcoordinates().getlatitude(); 5
Especificando o modo de GPS Especificando o modo de GPS 2 É necessário especificar o modo de GPS para recuperar a localização de um dispositivo BlackBerry. Os modos de GPS são: autônomo, assistido e estação rádio-base. O modo autônomo usa somente satélites de GPS. O modo assistido usa satélites de GPS e servidores na rede sem fio. O modo estação rádio-base usa o serviço de localização geográfica ou a rede sem fio para fornecer as informações de localização da estação atual de base. Especificando o modo de GPS com o uso de JSR 179 Se você utiliza o pacote JSR 179, deve especificar as propriedades do modo de GPS na classe javax.microedition.location.criteria. O aplicativo não pode definir o modo de GPS diretamente. Se um dispositivo BlackBerry estiver emparelhado com um dispositivo GPS habilitado para Bluetooth para determinar a localização, será usado o dispositivo habilitado para Bluetooth independentemente de como o objeto Criteria tenha sido configurado. Especificar o modo de GPS (JSR 179) A API JSR 179 Location é compatível com dispositivos BlackBerry que executam o BlackBerry Device Software 4.0.2 ou posterior. 1. Importe a classe necessária. import javax.microedition.location.criteria; 2. Crie uma classe e um construtor. public class handlegps public handlegps() 3. No construtor, crie uma instância da classe Criteria. Crie uma variável para especificar um modo de GPS. Criteria mycriteria = new Criteria(); int mymode = 2; // AUTONOMOUS 4. No construtor, mapeie as propriedades para cada modo de GPS ativando o método correspondente definido para cada propriedade. switch ( mymode ) case 0: // CELLSITE mycriteria.setpreferredpowerconsumption(criteria.power_usage_low); 6
Especificando o modo de GPS com o uso de JSR 179 mycriteria.sethorizontalaccuracy(criteria.no_requirement); mycriteria.setverticalaccuracy(criteria.no_requirement); mycriteria.setcostallowed(true); break; case 1: // ASSIST mycriteria.setpreferredpowerconsumption(criteria.power_usage_medium); mycriteria.sethorizontalaccuracy(100); mycriteria.setverticalaccuracy(100); mycriteria.setcostallowed(true); break; case 2: // AUTONOMOUS mycriteria.setcostallowed(false); break; Propriedades de mapeamento de critérios Se você usa a API JSR 179 Location para especificar um modo de GPS, deve mapear as seguintes propriedades para a classe Criteria. Modo de GPS Precisão horizontal Precisão vertical Custo permitido Nível de uso de energia Tempo de resposta Frequência de ponto Autônomo obrigatória obrigatória não qualquer uma qualquer uma simples ou múltipla Autônomo não obrigatória não obrigatória não médio, alto ou não obrigatório Assistido ou com otimização de dados Assistido ou com otimização de velocidade Assistido ou baseado em MS Assistido ou com otimização de precisão não obrigatória não obrigatória sim médio, alto ou não obrigatório qualquer uma qualquer uma obrigatória obrigatória sim alto qualidade do serviço obrigatória obrigatória sim médio ou não obrigatório qualidade do serviço obrigatória obrigatória sim alto qualidade do serviço simples ou múltipla simples ou múltipla múltipla múltipla simples 7
Especificando o modo de GPS com o uso de extensões BlackBerry para JSR 179 Modo de GPS Assistido ou assistido por MS Estação rádiobase Precisão horizontal Precisão vertical Custo permitido Nível de uso de energia obrigatória obrigatória sim médio ou não obrigatório Tempo de resposta qualidade do serviço Frequência de ponto simples não obrigatória não obrigatória sim baixo qualquer uma qualquer uma Especificando o modo de GPS com o uso de extensões BlackBerry para JSR 179 As extensões BlackBerry para JSR 179 fornecem um conjunto expandido de critérios de GPS. A classe net.rim.device.api.gps.blackberrycriteria estende a classe javax.microedition.location.criteria. Você pode usar os métodos na classe BlackBerryCriteria para especificar os requisitos de GPS para o seu aplicativo. Método setmode (int) setfailovermode (int,int,int) setsubsequentmode (int) setgpsrestartinterval (int, int) setsatelliteinforequired (boolean, boolean) Descrição Use este método para especificar um modo de GPS inicial quando criar um objeto BlackBerryCriteria. Use este método para especificar um modo failover de GPS a ser usado quando o modo de GPS inicial falhar. Este método aplica-se somente à funcionalidade interna de GPS em um dispositivo BlackBerry. Use este método para especificar um modo de GPS subsequente a ser usado depois que um primeiro ponto de GPS bem-sucedido for recuperado. Use este método para especificar um intervalo de espera antes de reiniciar automaticamente o processo de recuperação de GPS quando um ponto de GPS não for recuperado com êxito. É possível especificar intervalos de no máximo 15 minutos e no mínimo 2 segundos, com um limite de três tentativas automáticas. Você pode usar este método para especificar se deseja informações de rastreamento de satélite. As informações de rastreamento de satélite consistem no número de satélites em exibição e suas respectivas IDs, qualidade de sinal, elevação e azimute. Este método aplica-se somente à funcionalidade interna de GPS em um dispositivo BlackBerry. 8
Especificando o modo de GPS com o uso de extensões BlackBerry para JSR 179 Modos de GPS Para poder usar o modo de GPS, o aplicativo do seu dispositivo BlackBerry deve verificar se há um modo de GPS disponível para uso em cada um dos dispositivos BlackBerry em que o aplicativo é executado. Modo de GPS estação rádio-base autônomo assistido baseado em MS assistido por MS com otimização de velocidade com otimização de precisão com otimização de dados Descrição Este modo usa a rede sem fio para atingir o primeiro ponto de GPS e é geralmente considerado o modo mais rápido. Este modo não fornece informações de rastreamento de dispositivo BlackBerry, tais como velocidade e direção. Este modo usa o receptor GPS interno do dispositivo BlackBerry para recuperar informações de localização. Este modo não pode ser usado em áreas fechadas ou muito próximas a obstruções físicas e pode levar vários minutos para sincronizar-se completamente com quatro ou mais satélites para o primeiro ponto de GPS. Este modo usa a rede sem fio para recuperar informações de satélite. Este modo pode recuperar rapidamente o primeiro ponto de GPS. Este modo usa a rede sem fio para recuperar informações de satélite. Depois do primeiro ponto de GPS, o dispositivo BlackBerry conta com o modo autônomo para recuperar com mais precisão os pontos de GPS subsequentes. O modo de GPS baseado em MS aplica-se a dispositivos BlackBerry que usam o Qualcomm gpsone e operam em rede CDMA. Este modo usa a rede sem fio para recuperar informações de satélite. Este modo aplica-se a dispositivos BlackBerry que usam o Qualcomm gpsone e operam em rede CDMA. Este modo tem como prioridade fornecer o ponto de GPS mais rápido possível que atenda aos critérios definidos pelo aplicativo. Este modo aplica-se a dispositivos BlackBerry que usam o Qualcomm gpsone e operam em rede CDMA. Este modo é determinado com base na precisão de um ponto de GPS. Este modo baseia-se em informações de rede ou executa cálculos locais, dependendo do que for mais preciso e disponível. Este modo aplica-se a dispositivos BlackBerry que usam o Qualcomm gpsone e operam em rede CDMA. Este modo é determinado com base na menor quantidade de tráfego de rede necessária para um ponto de GPS. Este modo pode basear-se em informações de rede ou executar cálculos locais, dependendo do que estiver disponível e usar a menor quantidade de tráfego de dados. Este modo aplica-se a dispositivos BlackBerry que usam o Qualcomm gpsone e operam em rede CDMA. 9
Especificando o modo de GPS com o uso de extensões BlackBerry para JSR 179 Modo de GPS GPS habilitado para Bluetooth Descrição Este modo é determinado pela configuração do dispositivo GPS habilitado para Bluetooth. A configuração de um dispositivo GPS habilitado para Bluetooth emparelhado com um dispositivo BlackBerry não pode ser especificada em um objeto Criteria. Especificar o modo de GPS com o uso de extensões BlackBerry para JSR 179 As extensões BlackBerry para JSR 179 são compatíveis com dispositivos BlackBerry que executam o BlackBerry Device Software 5.0.0 ou posterior. 1. Importe a classe necessária. import net.rim.device.api.gps.*; 2. Crie uma classe e um construtor. public class handlegps BlackBerryCriteria mycriteria; public handlegps() 3. No construtor, crie um bloco /catch. Nesse bloco, crie uma instância da classe BlackBerryCriteria fornecendo o modo de GPS como um parâmetro para o construtor. mycriteria = new BlackBerryCriteria(GPSInfo.GPS_MODE_ASSIST); catch ( UnsupportedOperationException ex ) 4. No construtor, ative setfaillovermode() para especificar o modo failover de GPS a ser usado se o primeiro modo de GPS especificado não puder recuperar um ponto de GPS. Ative setsubsequentmode() para especificar um modo de GPS subsequente a ser usado depois que um primeiro ponto de GPS bem-sucedido for recuperado. mycriteria.setfailovermode(gpsinfo.gps_mode_autonomous, 3, 100); mycriteria.setsubsequentmode(gpsinfo.gps_mode_autonomous); 5. Para verificar se há suporte a um determinado modo de GPS, ative GPSInfo.isGPSModeAvailable() e forneça o modo de GPS como um parâmetro. Ative setmode() para especificar o modo de GPS, se o modo for suportado. 10
Recuperando informações de localização usando o modo de GPS assistido public class handlegps public handlegps() BlackBerryCriteria mycriteria = new BlackBerryCriteria(); if (GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_ASSIST)) mycriteria.setmode(gpsinfo.gps_mode_assist); else if (GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_AUTONOMOUS)) mycriteria.setmode(gpsinfo.gps_mode_autonomous); Recuperando informações de localização usando o modo de GPS assistido Modo assistido usando um servidor PDE O modo assistido pode ser usado com dispositivos BlackBerry associados a uma rede CDMA que utiliza tecnologia de servidor PDE. O modo assistido foi projetado para fornecer recuperação rápida de um ponto de GPS. Os recursos de GPS assistidos são atualmente definidos por provedores de serviços sem fio. Em vários casos, você deve estabelecer um contrato formal com provedores de serviços sem fio para poder conectar seus respectivos servidores PDE. Verificar se as informações do servidor PDE são obrigatórias Antes de usar o modo assistido com um servidor PDE, você deve verificar se as informações do servidor PDE são obrigatórias. 1. Importe a classe necessária. import net.rim.device.api.gps.gpssettings; 2. Crie uma classe e um construtor. No construtor, ative ispdeinforequired() para verificar se é necessário especificar as informações do servidor PDE para usar o modo assistido. public class checkpde public checkpde() if ( ispdeinforequired(gpsinfo.gps_mode_assist)) // set up PDE server access 11
Recuperando informações de localização usando o modo de GPS assistido Especificar informações do servidor PDE Antes de começar: Você deverá ter a ID de usuário, a senha, o endereço IP e o número de porta que o provedor de serviços sem fio utilizará para seu servidor PDE. 1. Importe as classes necessárias: import net.rim.device.api.gps.*; import javax.microedition.location.*; 2. Crie uma classe e um construtor. public class handlegps static GPSThread gpsthread; public handlegps() 3. No construtor, crie e inicie uma instância da classe Thread. gpsthread = new GPSThread(); gpsthread.start(); 4. Na classe, crie uma classe estática privada que estenda Thread e crie um método run(). private static class GPSThread extends Thread public void run() 5. No método run() da classe privada, ative isgpsmodeavailable() fornecendo GPS_MODE_ASSIST como um parâmetro para determinar se o modo assistido está disponível no dispositivo BlackBerry. Ative ispdeinforequired () para determinar se é necessário especificar informações do servidor PDE. Se for necessário fornecer informações do servidor PDE, crie uma instância da classe BlackBerryCriteria fornecendo GPS_MODE_ASSIST como um parâmetro ao construtor. if (!GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_ASSIST)!GPSSettings.isPDEInfoRequired(GPSInfo.GPS_MODE_ASSIST)) BlackBerryCriteria mycriteria = new BlackBerryCriteria (GPSInfo.GPS_MODE_ASSIST); 12
Recuperando informações de localização usando o modo de GPS assistido 6. No método run() da classe privada, crie um bloco /catch. No bloco, associe uma instância da classe BlackBerryCriteria a um objeto BlackBerryLocationProvider. Crie e especifique a ID de usuário, a senha, objetos String de endereço IP e a ID de porta. Combine os objetos String em uma única String. Ative setpdeinfo () para especificar o endereço IP do servidor PDE e o número de porta do dispositivo BlackBerry. BlackBerryLocationProvider myprovider = (BlackBerryLocationProvider) LocationProvider.getInstance(myCriteria); String user = "UserID"; String pass = "Password"; String ip = "127.0.0.1"; int port = 0; String str = ip + ";" + user + ";" + pass; GPSSettings.setPDEInfo(str, port); BlackBerryLocation mylocation = (BlackBerryLocation)myProvider.getLocation(10); catch ( InterruptedException iex ) catch ( LocationException lex ) catch ( LocationException lex ) Exemplo de código: Especificando informações do servidor PDE import net.rim.device.api.gps.*; import javax.microedition.location.*; public class handlegps static GPSThread gpsthread; public handlegps() gpsthread = new GPSThread(); gpsthread.start(); private static class GPSThread extends Thread public void run() if (!GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_ASSIST)!GPSSettings.isPDEInfoRequired(GPSInfo.GPS_MODE_ASSIST)) 13
Recuperando informações de localização usando o modo de GPS assistido BlackBerryCriteria mycriteria = new BlackBerryCriteria(GPSInfo.GPS_MODE_ASSIST); BlackBerryLocationProvider myprovider = (BlackBerryLocationProvider) LocationProvider.getInstance(myCriteria); String user = "UserID"; String pass = "Password"; String ip = "127.0.0.1"; int port = 0; String str = ip + ";" + user + ";" + pass; GPSSettings.setPDEInfo(str, port); BlackBerryLocation mylocation = (BlackBerryLocation)myProvider.getLocation(10); catch ( InterruptedException iex ) catch ( LocationException lex ) catch ( LocationException lex ) 14
Recuperando um provedor de localização Recuperando um provedor de localização 3 Depois de especificar o modo de GPS, você deverá recuperar o provedor de localização que seu aplicativo usa para oferecer suporte ao modo de GPS. Um provedor de localização representa a fonte das informações de localização e funciona com base em determinados critérios (por exemplo, precisão horizontal e uso de energia). Se o aplicativo usa a classe Criteria do pacote JSR 179 para especificar um modo de GPS, o aplicativo deverá recuperar uma instância da classe LocationProvider. Se o aplicativo usa a classe BlackBerryCriteria, deverá então recuperar uma instância da classe BlackBerryLocationProvider. Um objeto BlackBerryLocationProvider estende a classe javax.microedition.location.locationprovider. Você pode usar BlackBerryLocationProvider para completar as seguintes ações: Processar uma solicitação de localização especificada no objeto net.rim.device.api.gps.blackberrycriteria. Pausar e continuar o ouvinte de local. Recuperar o tipo de receptor GPS incluindo um receptor GPS habilitado para Bluetooth ou um interno. Quando o ouvinte de local está em estado de pausa, o aplicativo não recebe pontos de GPS. O ouvinte de local pode estar no estado pronto e, ao mesmo tempo, em estado de pausa. Recuperar um provedor de localização usando a classe LocationProvider 1. Importe as classes necessárias: import javax.microedition.location.*; 2. Crie uma classe e um construtor. public class handlegps public handlegps() 3. No construtor, crie uma instância da classe Criteria. Criteria mycriteria = new Criteria(); 4. No construtor, configure o objeto Criteria para usar o modo de GPS especificado. No seguinte exemplo de código, o modo autônomo é especificado ativando-se setcostallowed(false). int mymode = 2; // AUTONOMOUS switch ( mymode ) 15
Recuperar um provedor de localização usando a classe LocationProvider case 0: // CELLSITE mycriteria.setpreferredpowerconsumption(criteria.power_usage_low); mycriteria.sethorizontalaccuracy(criteria.no_requirement); mycriteria.setverticalaccuracy(criteria.no_requirement); mycriteria.setcostallowed(true); break; case 1: // ASSIST mycriteria.setpreferredpowerconsumption(criteria.power_usage_medium); mycriteria.sethorizontalaccuracy(100); mycriteria.setverticalaccuracy(100); mycriteria.setcostallowed(true); break; case 2: // AUTONOMOUS mycriteria.setcostallowed(false); break; 5. No construtor, crie um bloco /catch. Dentro do bloco, crie um objeto LocationProvider ativando getinstance (). LocationProvider myprovider = LocationProvider.getInstance(myCriteria); catch ( LocationException lex ) Exemplo de código: Recuperando um provedor de localização usando a classe LocationProvider import javax.microedition.location.*; public class handlegps public handlegps() Criteria mycriteria = new Criteria(); int mymode = 2; // AUTONOMOUS switch ( mymode ) case 0: // CELLSITE mycriteria.setpreferredpowerconsumption(criteria.power_usage_low); mycriteria.sethorizontalaccuracy(criteria.no_requirement); mycriteria.setverticalaccuracy(criteria.no_requirement); mycriteria.setcostallowed(true); break; case 1: // ASSIST mycriteria.setpreferredpowerconsumption(criteria.power_usage_medium); mycriteria.sethorizontalaccuracy(100); mycriteria.setverticalaccuracy(100); mycriteria.setcostallowed(true); 16
Controlando o rastreamento usando a classe BlackBerryLocationProvider break; case 2: // AUTONOMOUS mycriteria.setcostallowed(false); break; LocationProvider myprovider = LocationProvider.getInstance(myCriteria); catch ( LocationException lex ) Controlando o rastreamento usando a classe BlackBerryLocationProvider A classe net.rim.device.api.gps.blackberrylocationprovider estende a classe javax.microedition.location.locationprovider e é requerida para aplicativos de dispositivos BlackBerry que usem as extensões BlackBerry para JSR 179. Você pode usar os métodos fornecidos na classe BlackBerryLocationProvider para controlar o rastreamento. Método getprovidertype() pauselocationtracking (int interval) resumelocationtracking() stoplocationtracking() Descrição Este método recupera a fonte das informações de localização. A fonte é um receptor GPS interno ou externo. Este método pausa o rastreamento e para o recebimento de pontos de GPS. Você pode fornecer um parâmetro de intervalo, especificado em segundos, para assegurarse de que o receptor GPS permanecerá ativo durante a pausa. Você pode fornecer um intervalo 0 para parar indefinidamente o rastreamento e desativar o receptor GPS. Este método retoma o rastreamento após um estado de pausa. Este método para o rastreamento somente se o rastreamento tiver sido previamente iniciado. Seu aplicativo deve ativar o BlackBerryLocationProvider.reset () antes de reiniciar o rastreamento usando o mesmo provedor de localização. 17
Controlar o rastreamento usando a classe BlackBerryLocationProvider Controlar o rastreamento usando a classe BlackBerryLocationProvider Você pode pausar, continuar e parar o rastreamento usando a classe net.rim.device.api.gps.blackberrylocationprovider. 1. Importe as classes necessárias: import net.rim.device.api.gps.*; import javax.microedition.location.*; 2. Crie uma nova classe e um construtor. public class handlegps static BlackBerryLocationProvider myprovider; public handlegps() 3. No construtor, crie um bloco /catch. Nesse bloco, crie uma instância da classe BlackBerryCriteria fornecendo o modo GPS como um parâmetro para o construtor. BlackBerryCriteria mycriteria = new BlackBerryCriteria(GPSInfo.GPS_MODE_AUTONOMOUS); catch ( UnsupportedOperationException uoex ) 4. Na parte do bloco, crie um novo bloco /catch. Nesse bloco, crie uma instância da classe BlackBerryLocationProvider recuperando uma instância da classe BlackBerryCriteria. Ative setlocationlistener() fornecendo o valor do intervalo, valor de tempo limite e idade máxima como parâmetros para adicionar um LocationListener. myprovider = (BlackBerryLocationProvider) LocationProvider.getInstance(myCriteria); myprovider.setlocationlistener(new handlegpslistener(), 10, -1, -1); catch ( LocationException lex ) 18
Controlar o rastreamento usando a classe BlackBerryLocationProvider myprovider.pauselocationtracking(30); myprovider.resumelocationtracking(); myprovider.stoplocationtracking(); 5. Fora do bloco /catch, ative pauselocationtracking(), resumelocationtracking() ou stoplocationtracking() para pausar, continuar ou parar o rastreamento. myprovider.pauselocationtracking(30); myprovider.resumelocationtracking(); myprovider.stoplocationtracking(); 6. Na classe, implemente a interface LocationListener. Implemente a estrutura básica para os métodos locationupdated() e 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 ) Exemplo de código: Usando a classe BlackBerryLocationProvider para controlar o rastreamento import net.rim.device.api.gps.*; import javax.microedition.location.*; public class handlegps static BlackBerryLocationProvider myprovider; public handlegps() BlackBerryCriteria mycriteria = new BlackBerryCriteria(GPSInfo.GPS_MODE_AUTONOMOUS); 19
myprovider = (BlackBerryLocationProvider) LocationProvider.getInstance(myCriteria); myprovider.setlocationlistener(new handlegpslistener(), 10, -1, -1); catch ( LocationException lex ) myprovider.pauselocationtracking(30); myprovider.resumelocationtracking(); myprovider.stoplocationtracking(); catch ( UnsupportedOperationException uoex ) public static class handlegpslistener implements LocationListener public void locationupdated(locationprovider provider, Location location) if (location.isvalid()) // do something else // invalid location public void providerstatechanged(locationprovider provider, int newstate) if (newstate == LocationProvider.AVAILABLE) // available else if (newstate == LocationProvider.OUT_OF_SERVICE) // GPS unavailable due to IT policy specification else if (newstate == LocationProvider.TEMPORARILY_UNAVAILABLE ) // no GPS fix 20
Recuperar um provedor de localização usando a classe BlackBerryLocationProvider Recuperar um provedor de localização usando a classe BlackBerryLocationProvider 1. Importe as classes necessárias: import net.rim.device.api.gps.*; import javax.microedition.location.*; 2. Crie uma classe e um construtor. public class handlegps static BlackBerryCriteria mycriteria; public handlegps() 3. No construtor, crie um bloco /catch. Nesse bloco, crie uma instância da classe BlackBerryCriteria e forneça o modo GPS para o construtor. Crie um segundo bloco /catch e então crie uma instância da classe BlackBerryLocationProvider ativando getinstance() para recuperar uma instância do objeto BlackBerryCriteria. mycriteria = new BlackBerryCriteria(GPSInfo.GPS_MODE_ASSIST); BlackBerryLocationProvider myprovider = (BlackBerryLocationProvider) LocationProvider.getInstance(myCriteria); catch ( LocationException lex ) catch ( UnsupportedOperationException ex ) 21