Cursos / Informática para Internet / Dispositivos Móveis / Aula
Saber onde o usuário se encontra e poder utilizar essa informação em tempo real é uma funcionalidade muito interessante quando estamos falando em aplicações para dispositivos móveis. Uma enorme gama de aplicações novas surge quando se tem acesso a esse tipo de informação. A capacidade de poder tornar a sua aplicação mais local, utilizando informações da região do usuário, mesmo que seja para exibir anúncios personalizados, é de grande valia e não pode ser deixada de lado. Por esses motivos, a partir de agora estudaremos como utilizar a localização do usuário em uma aplicação Android.
O Android disponibiliza duas maneiras de descobrir a localização do usuário: o GPS e o Android's Network Location Provider. O GPS já é um instrumento conhecido e consolidado para se obter a localização. Como grande parte das pessoas já sabe, o GPS utiliza-se de uma grande rede de satélites para determinar a posição atual do usuário. O grande problema desse tipo de abordagem é que o uso dos satélites não é viável se o dispositivo não estiver em um ambiente aberto, ou seja, temos um problema para detectar posicionamentos em ambientes fechados. Além disso, a comunicação com satélites desse tipo gera um grande consumo de bateria, o que é uma grande preocupação para usuários de dispositivos móveis.
Para auxiliar o GPS, o Android também disponibiliza o Network Location Provider. Esse segundo método se utiliza de informações obtidas a partir das torres de telefonia móvel, bem como das informações conhecidas sobre as Wi-Fi disponíveis para obter, assim, uma localização um pouco mais precisa do usuário. Esse método é mais rápido que a utilização do GPS e também independe se o usuário está em um ambiente externo ou interno. Além disso, utilizar o Network Location Provider consome menos bateria que utilizar o GPS puro. Então, qual método utilizar em sua aplicação? Isso fica a seu critério, seja apenas um deles, ou os dois. Geralmente utilizamos os dois, deixando que o aparelho detecte a localização rapidamente.
Como você já deve estar imaginando, obter a localização de um usuário em um dispositivo móvel não é uma tarefa simples. Alguns problemas são bem claros quando estamos pensando em adquirir a localização de um usuário. Vamos discutir um pouco alguns deles.
O primeiro caso a se pensar quando estamos requisitando a localização de um usuário é saber quais os recursos de localização aquele usuário terá disponível naquele momento. Por se tratar de um dispositivo móvel, pode ser que um usuário que possui GPS, em um dado momento, esteja em uma área coberta, perdendo grande parte da eficiência desse método. Esse mesmo usuário pode estar fora do alcance de redes Wi-Fi, o que também pode dificultar a obtenção de informações de posicionamento.
Outro ponto importante é que essa disponibilidade dos recursos de localização é alterada a todo o momento, visto que se trata de um dispositivo móvel, que pode estar mudando de localização constantemente. Graças à possibilidade que o dispositivo tem de mudar de posição, é necessário ao desenvolvedor se preocupar com a obtenção de novas posições, que confirmem ou não o movimento do usuário. Isso, se feito de maneira errônea, pode levar a informações pouco precisas, ou mesmo a um gasto excessivo de energia do aparelho.
Por fim, outro problema a se pensar quando estamos lidando com localização é a mudança na precisão dos dados. Um usuário que há 30 segundos estava em um local aberto, com ótimo sinal de GPS, pode agora estar dentro de um shopping, por exemplo, tendo péssimas leituras de posição. Dentro desse shopping, o usuário pode estar em um local com acesso a algumas redes Wi-Fi mapeadas, o que garante uma boa precisão ao outro método de localização, porém, em outros 30 segundos, o usuário já pode ter saído do alcance dessas redes, perdendo mais uma vez a precisão no serviço de localização. Ainda assim, nos próximos 30 segundos, esse usuário já pode ter saído do shopping e voltado a um local aberto, onde a precisão do GPS é bem melhor. Viu quantas mudanças de precisão nos dois sistemas um usuário sofreu em um curto espaço de tempo? Isso também deve ser pensado e levado em conta quando se utiliza serviços de localização.
Esses problemas podem afetar de maneira significativa uma aplicação que depende da localização do usuário. Durante esta aula, buscaremos demonstrar maneiras para evitar cair em qualquer um desses casos e perder na qualidade final da aplicação.
Versão 5.3 - Todos os Direitos reservados