Dans les docs here que je suis comment recevoir les demandes de localisation et deux choses inhabituelles, j'ai remarqué sont dans ces deux blocs de code:Que fait la classe LocationSettingsStates lors de la réception de demandes de localisation?
result.setResultCallback(new ResultCallback<LocationSettingsResult>() {
@Override
public void onResult(LocationSettingsResult result) {
final Status status = result.getStatus();
final LocationSettingsStates = result.getLocationSettingsStates(); //<--This line I don't understand
switch (status.getStatusCode()) {
case LocationSettingsStatusCodes.SUCCESS:
// All location settings are satisfied. The client can initialize location
// requests here.
...
break;
case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
// Location settings are not satisfied. But could be fixed by showing the user
// a dialog.
try {
// Show the dialog by calling startResolutionForResult(),
// and check the result in onActivityResult().
status.startResolutionForResult(
OuterClass.this,
REQUEST_CHECK_SETTINGS);
} catch (SendIntentException e) {
// Ignore the error.
}
break;
case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
// Location settings are not satisfied. However, we have no way to fix the
// settings so we won't show the dialog.
...
break;
}
}
});
Et dans le deuxième bloc:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
final LocationSettingsStates states = LocationSettingsStates.fromIntent(intent); //<--And this line
switch (requestCode) {
case REQUEST_CHECK_SETTINGS:
switch (resultCode) {
case Activity.RESULT_OK:
// All required changes were successfully made
...
break;
case Activity.RESULT_CANCELED:
// The user was asked to change settings, but chose not to
...
break;
default:
break;
}
break;
}
}
I J'ai ajouté des flèches pointant vers les lignes que je ne comprends pas. ces deux en particulier:
final LocationSettingsStates = result.getLocationSettingsStates();
final LocationSettingsStates states = LocationSettingsStates.fromIntent(intent);
La première ligne est quelque chose que je ne l'ai pas vu. Comment est-ce valable, en attribuant une valeur à un type de données? Alors cette classe n'est plus utilisée nulle part ailleurs dans ce bloc de code, alors quel est le but de la tâche?
Dans l'autre ligne, attribue maintenant une valeur à une instance appelée states
de ce type de données, mais cette instance n'est utilisée nulle part ailleurs dans onActivityResult()
.
Alors, que se passe-t-il ici? Merci.