Se a app precisa trabalhar com dados geográficos o mais preciso possível, nem deve levar em conta o Wi-fi. Os riscos são altos, pelo motivo que o Bruno falou.
Para não utilizar Wi-fi, baseado nos links que passei. Me parece que funciona a seguinte solução (não testei):
- Um listener com critério: energia alta e localização precisa para GPS.
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setPowerRequirement(Criteria.POWER_HIGH);
- E outro listener com critério: energia baixa e localização esparsa.
criteria.setAccuracy(Criteria.ACCURACY_COARSE);
criteria.setPowerRequirement(Criteria.POWER_LOW);