Android :Comment obtenir de l'Emplacement Actuel de la Longitude et de la latitude?

Je veux stocker Emplacement actuel de la base de données lorsque je clique sur Button.

L'emplacement est enregistré, mais il reçoit 0.0 ,0.0 ne sais pas où est l'erreur dans mon code Ici, je poste mon code complet de cette s'il vous plaît m'aider à sortir de ce.

obtenir de l'emplacement actuel

GetCurrentGPSLocation gps = new GetCurrentGPSLocation(getActivity());

            //check if GPS enabled
            if (gps.canGetLocation()) {
                double latitude = gps.getLatitude();
                double longitude = gps.getLongitude();
                //\n is for new line
                lat.setText( ""+latitude);
                longi.setText("" +longitude);
                latitude12=lat.getText().toString();
                longitude12=longi.getText().toString();
                Toast.makeText(getActivity(), "Your Location is - \nLat: " + latitude + "\nLong: " + longitude, Toast.LENGTH_LONG).show();

                longi.setVisibility(View.INVISIBLE);
                lat.setVisibility(View.INVISIBLE);
            } else {
                //can't get location
                //GPS or Network is not enabled
                //Ask user to enable GPS/network in settings
                gps.showSettingsAlert();
            }

GetCurrentGPSLocation

    package com.example.sachin.omcom;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
import android.provider.Settings;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
public class GetCurrentGPSLocation extends AppCompatActivity implements LocationListener {
private final Context mContext;
//flag for GPS status
boolean isGPSEnabled = false;
//flag for network status
boolean isNetworkEnabled = false;
//flag for GPS status
boolean canGetLocation = false;
Location location; //location
double latitude; //latitude
double longitude; //longitude
//The minimum distance to change Updates in meters
private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; //10 meters
//The minimum time between updates in milliseconds
private static final long MIN_TIME_BW_UPDATES = 1000 * 60 * 1; //1 minute
//Declaring a Location Manager
protected LocationManager locationManager;
public GetCurrentGPSLocation(Context context) {
this.mContext = context;
getLocation();
}
public Location getLocation() {
try {
locationManager = (LocationManager) mContext
.getSystemService(LOCATION_SERVICE);
//getting GPS status
isGPSEnabled = locationManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);
//getting network status
isNetworkEnabled = locationManager
.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!isGPSEnabled && !isNetworkEnabled) {
//no network provider is enabled
} else {
this.canGetLocation = true;
//First get location from Network Provider
if (isNetworkEnabled) {
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
Log.d("Network", "Network");
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
//if GPS Enabled get lat/long using GPS Services
if (isGPSEnabled) {
if (location == null) {
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
Log.d("GPS Enabled", "GPS Enabled");
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return location;
}
/**
* Stop using GPS listener
* Calling this function will stop using GPS in your app
* */
public void stopUsingGPS(){
if(locationManager != null){
locationManager.removeUpdates(GetCurrentGPSLocation.this);
}
}
/**
* Function to get latitude
* */
public double getLatitude(){
if(location != null){
latitude = location.getLatitude();
}
//return latitude
return latitude;
}
/**
* Function to get longitude
* */
public double getLongitude(){
if(location != null){
longitude = location.getLongitude();
}
//return longitude
return longitude;
}
/**
* Function to check GPS/wifi enabled
* @return boolean
* */
public boolean canGetLocation() {
return this.canGetLocation;
}
/**
* Function to show settings alert dialog
* On pressing Settings button will lauch Settings Options
* */
public void showSettingsAlert(){
AlertDialog.Builder alertDialog = new AlertDialog.Builder(mContext);
//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);
mContext.startActivity(intent);
}
});
//on pressing cancel button
alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
//Showing Alert Message
alertDialog.show();
}
@Override
public void onLocationChanged(Location location) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
// @Override
public IBinder onBind(Intent arg0) {
return null;
}}
  • Avez-vous ajouté l'autorisation pour le service de localisation dans le fichier manifest ???
  • oui j'ai ajouté de l'autorisation
  • Bon alors permettez-moi de passer par votre code, et de revenir à vous, assurez-vous également que si vous exécutez votre application sur de la guimauve alors vous devez demander à l'exécution de l'autorisation
  • Étendre Service au lieu de AppCompatActivity
  • Double Possible de Comment puis-je obtenir la position GPS actuelle par programmation dans Android?
  • Juste prolonger votre classe avec le Service et de mettre en œuvre: LocationListener pour obtenir de l'emplacement mis à jour et vous êtes bon pour aller
  • quel est le problème avec extending AppCompatActivity ? pourquoi vous proposer un service de ..extends AppCompatActivity implements OnMapReadyCallback, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener fonctionne bien
  • quand je suis en utilisant le Service, il me donne l'erreur comme Erreur:(213, 5) erreur: la méthode ne permet pas de remplacer ou de mettre en œuvre une méthode à partir d'un supertype
  • Vous êtes à l'aide de quelques sévèrement GPS code. Découvrez la raison cassé et quelques de code dans le gabesechansoftware.com/location-tracking En particulier canGetLocation est mal mis en œuvre. Elle ne vous dit pas si un emplacement est disponible, si le GPS n'est pas désactivée par l'utilisateur.
  • Solanki essayer mon exemple
  • m d'essayer..
  • Double Possible de Quel est le plus simple et le plus robuste pour obtenir de l'utilisateur de l'emplacement actuel sur Android?

InformationsquelleAutor | 2016-12-24