Moinsen.
Ich hätte da mal gern ein Problem.
Meine App läuft auf vielen Geräten recht zuverlässig, nur die Samsungs machen offenbar Probleme.
(Beim Namen: Galaxy SII, Galaxy SIII mini, Galaxy ACE)
Obwohl ich die Updates alle 10 Meter oder 2,5 Sekunden anfordere, bekomme ich dort auch gern mal 50m und 30 Sekunden lang nichts rein.
Naja, und plötzlich macht es dann verständlicherweise einen riesigen Sprung von ungefähr 50 Metern...
Weder das LG Nexus 4 noch das HTC One V und auch nicht die Huawei Ascend und Sonic machen so einen Blödsinn.
Das scheint von Samsung gepachtet zu sein – und macht einen geringen Teil meiner App damit für Samsung-Nutzer schlicht unbrauchbar.
(Klar, gibt auch Tablet-Nutzer mit ohne GPS, für die ist der Teil der App ebenfalls unbrauchbar. Das wissen die aber auch.)
Muss ich jetzt irgendwie auf Samsung prüfen und den Leuten mitteilen 'Euer GPS ist Mist, du kriegst hier keine Führungen angeboten!' oder gibt es irgendwelche undokumentierten Tricks, wie man diesen Mistdingern ein ordentliches GPS Update aus dem Kreuz leiern kann?
Der 'Code in Question' wäre übrigens:
super.onStart();
if(locationManager == null)
{
// Manche Geräte kennen keinen GPS_PROVIDER, so dass der Aufruf zu einer IllegalArgumentException führt.
try
{
locationManager = (LocationManager)getSystemService(LOCATION_SERVICE);
// Update alle 2,5 Sekunden oder 10 Meter.
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2500, 10f, apl = new ApplicationLocationListener(this));
}
catch (Exception e)
{
locationManager = null;
}
}
Location latestLocation = null;
if(locationManager != null)
{
try
{
// Manche Geräte kennen keinen GPS_PROVIDER, so dass der Aufruf zu einer IllegalArgumentException führt.
latestLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}
catch (Exception e)
{
latestLocation = null;
}
}
Alles anzeigen