Я работаю над приложением, которое делает фотографии в кодировке GPS.
Я могу получить сигнал GPS с точностью до 15 - 20 метров, когда у меня нет камеры, и у меня есть как минимум 3 спутника, иногда 5-7 спутников.
Однако, когда я запускаю упражнение, которое отображает SurfaceView с подключенной к нему камерой и код GPS, моя точность падает (> 100 метров), но только на некоторых телефонах.
Телефоны, на которых он не работает:
- Дроид Невероятный 2
- HTC Wildfire
- HTC Inspire
Телефоны, с которыми он работает:
- Atrix
- Galaxy Tab
- Motorolla Droid (Оригинал)
Итак, мои вопросы: почему это произошло? И конечно, как я могу это исправить?
Вот мой код, который я использую для запуска GPS
try{
locator = new GeoLocator(this);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.addGpsStatusListener(new GPSStatusManager(locationManager));
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setPowerRequirement(Criteria.NO_REQUIREMENT);
bestProvider = locationManager.getBestProvider(criteria, true);
Bundle bundle = new Bundle();
//I copied the next two lines out of some tutorial hoping that they would help boost my gps, but I'm really not sure what they do
boolean xtraInjection=locationManager.sendExtraCommand(LocationManager.GPS_PROVIDER,
"force_xtra_injection",bundle);
boolean timeInjection=locationManager.sendExtraCommand(LocationManager.GPS_PROVIDER,
"force_time_injection",bundle);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0.0f, locator);
}catch(Exception e){}