J'ai besoin d'obtenir l'emplacement chaque fois que l'application est lancée. Le rassemblement de lieux se passe à l'intérieur du fragment comme ça.
Je suis bulding client comme ceci.
mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
// The next two lines tell the new client that “this” current class will handle connection stuff
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
//fourth line adds the LocationServices API endpoint from GooglePlayServices
.addApi(LocationServices.API)
.build();
// Create the LocationRequest object
mLocationRequest = LocationRequest.create()
.setPriority(LocationRequest.PRIORITY_LOW_POWER);
@Override
public void onStart() {
super.onStart();
if (mSharedHelper.showGreeting()) {
if (!mGoogleApiClient.isConnected()) {
mGoogleApiClient.connect();
}
}
}
@Override
public void onDestroy() {
super.onDestroy();
if (mGoogleApiClient.isConnected()) {
mGoogleApiClient.disconnect();
}
}
Le rappel onConnected
est déclenchée et je fais la prochaine.
@Override
public void onConnected(Bundle bundle) {
try {
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
Location location = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
if (location == null) {
failedLocate = true;
hideGreetingCard();
} else {
failedLocate = false;
//If everything went fine lets get latitude and longitude
currentLatitude = location.getLatitude();
currentLongitude = location.getLongitude();
YahooWeather yahooWeather = YahooWeather.getInstance();
yahooWeather.queryYahooWeatherByLatLon(getActivity(), currentLatitude, currentLongitude, this);
}
} catch (SecurityException e) {
e.printStackTrace();
}
}
La question est que la variable d'emplacement est toujours nul, peu importe quelle priorité j'ai essayé tout ce que je ne faisais rien fonctionne, je suis toutes les autorisations ajouté à l'intérieur manifeste et demandé au moteur d'exécution en conséquence, et d'ailleurs variable d'emplacement étant null, le rappel onLocationChanged
ne se déclenche jamais mais vous pouvez voir qu'à l'intérieur onConnected
je demande la mise à jour de l'emplacement mais rien ne fonctionne simplement et non je n'ai pas besoin d'utiliser un type de carte pour forcer n'importe quel type de simulation J'ai juste besoin d'obtenir la longitude et la latitude de l'utilisateur à chaque fois que l'application est lancée et ce fragment est montré ce que je veux. Des idées?
duplication possible: http://stackoverflow.com/questions/29441384/fusedlocationapi-getlastlocation-always-null –
n'avez-vous pas lu mon message? N'avez-vous pas vu que je dis que je n'ai pas besoin d'invoquer une carte pour mettre à jour l'emplacement! –
qui ne corrige pas le problème que j'ai –