Android GPS dauert zu viel Zeit, um die Standort-Koordinaten
Hier, GPS dauert eine halbe Stunde oder mehr (Zeit), um den aktuellen Standort-Koordinaten.
Wie kann ich GPS aus GPS_SATELLITES und GPS _NETWORK_PROVIDERS
gleichzeitig im gleichen Zusammenhang und der Wert der letzten
GPS?
public class ImageFile extends Activity{
LocationListener listner;
Location location;
LocationManager locationManager ;
private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; //10 meters
private static final long MIN_TIME_BW_UPDATES = 1000 * 10 * 1; //1 minute
@Override
protected void onCreate(final Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.branchreport_layout);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
listner = new MyLocationListner();
isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if(isGPSEnabled==false&&isNetworkEnabled==false)
{
showSettingsAlert();
}
if (isGPSEnabled)
{
progress = ProgressDialog.show(this, "GPS",
"Fetching latitude and longitude...", true);
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
MIN_TIME_BW_UPDATES,MIN_DISTANCE_CHANGE_FOR_UPDATES,listner);
}
else if (isNetworkEnabled)
{
progress = ProgressDialog.show(this, "GPS",
"Fetching latitude and longitude...", true);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,MIN_TIME_BW_UPDATES,MIN_DISTANCE_CHANGE_FOR_UPDATES,listner);
}
public class MyLocationListner implements LocationListener {
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
@Override
public void onLocationChanged(Location location) {
//TODO Auto-generated method stub
x = location.getLatitude();
y = location.getLongitude();
if((x!=0) && (y!=0))
{
progress.dismiss();
locationManager.removeUpdates(listner);
Geocoder gCoder = new Geocoder(ImageFile.this);
try {
addresses = gCoder.getFromLocation(x, y, 1);
} catch (IOException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
if (addresses != null && addresses.size() > 0) {
Log.d("TestTag", "Locality: " + addresses.get(0).getLocality()+"getAddressLine"+addresses.get(0).getAddressLine(0)+",getAdminArea"+addresses.get(0).getAdminArea()+",getSubLocality"+addresses.get(0).getSubLocality());
}
}
}
@Override
public void onProviderDisabled(String arg0) {
//TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String arg0) {
//TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
//TODO Auto-generated method stub
}
}
public void showSettingsAlert(){
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
//Setting Dialog Title
alertDialog.setTitle("GPS is settings");
//Setting Dialog Message
alertDialog.setMessage("GPS is not enabled. Do you want to go to settings menu?");
//On pressing Settings button
alertDialog.setPositiveButton("Settings", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(intent);
}
});
//on pressing cancel button
alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
alertDialog.show();
}
}
- GPS fixed min drei Satelliten und dann geben Sie genauen Standort. Nehmen Sie sich immer Zeit. Betterto tun im hintergrund/
Du musst angemeldet sein, um einen Kommentar abzugeben.
GPS ist immer langsamer, also ich werde vorschlagen, zu verwenden
Android Location API using Google Play Services
.Schritte
Dies ist, wie wir bauen den GoogleApiClient
displayLocation()
Eine perfekte Erklärung der oben genannten Methoden und Schritte finden hier .überprüfen Sie auch die offizielle Dokumentation
NETWORK_PROVIDER
. Ich bin kein pro in Android und alles, was ich knw, ist diese.