Java GPS

Pessoal, preciso desenvolver uma aplicação móvel que utilize GPS, a aplicação móvel deve enviar informações para uma aplicação web passando as coordenadas para serem localizadas em mapa.

Perguntas:

1- Como funcionam os providers(banco de dados, webservices, etc) que me fornecem as localizações através da coordenadas? são free?

2- Quais são os melhores celulares com suporte a GPS para desenvolvimento em Java?

Acho que por enquanto é isso.

Valeu!

Após alguns estudos tirei minhas próprias conclusões e decidi comprar um celular N95 para o desenvolvimento, fiz alguns testes no emulador da sun, mas no emulador as coordenadas devem ser informadas na mão.
Como irei usar o Google maps, acho que vai ser tranquilo para obter as localizações, apenas passo as coordenadas e o maps se vira rs.

Gostaria de sugestões de quem já tem alguma experiência com isso.

Valeu