Lorsque j'effectue une recherche à partir de la saisie semi-automatique de Google Adresses, des suggestions/prévisions provenant du monde entier sont diffusées. Cependant, je veux obtenir des suggestions en fonction de l'emplacement de l'utilisateur. J'ai essayé de changer ma position manuellement dans l'émulateur, mais cela ne fonctionne toujours pas. Je pense qu'il me manque peut-être quelque chose dans mon code, mais je ne sais pas quoi. S'il vous plaît aider.L'API Google Places ne renvoie pas les suggestions en fonction de l'emplacement
Code:
Mes dépendances
compile 'com.google.android.gms:play-services-places:10.2.1'
compile 'com.google.android.gms:play-services-location:10.2.1'
compile 'com.google.android.gms:play-services:10.2.1'
FindLocation Activité
public class FindLocation extends AppCompatActivity
implements GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener {
private int PLACE_AUTOCOMPLETE_REQUEST_CODE = 1;
private GoogleApiClient mGoogleApiClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_find_location);
mGoogleApiClient = new GoogleApiClient
.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Places.GEO_DATA_API)
.addApi(Places.PLACE_DETECTION_API)
.enableAutoManage(this, this)
.build();
try {
Intent intent =
new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_OVERLAY)
.build(this);
startActivityForResult(intent, PLACE_AUTOCOMPLETE_REQUEST_CODE);
} catch (GooglePlayServicesRepairableException e) {
// TODO: Handle the error.
} catch (GooglePlayServicesNotAvailableException e) {
// TODO: Handle the error.
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PLACE_AUTOCOMPLETE_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
Place place = PlaceAutocomplete.getPlace(this, data);
//Log.i(TAG, "Place: " + place.getName());
} else if (resultCode == PlaceAutocomplete.RESULT_ERROR) {
Status status = PlaceAutocomplete.getStatus(this, data);
// TODO: Handle the error.
//Log.i(TAG, status.getStatusMessage());
} else if (resultCode == RESULT_CANCELED) {
// The user canceled the operation.
}
}
}
@Override
public void onConnected(@Nullable Bundle bundle) {
//refreshPlacesData();
}
@Override
public void onConnectionSuspended(int i) {
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
}
}
XML de mon activité
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.android.project_water.FindLocation">
</android.support.constraint.ConstraintLayout>
Tentative d'invocation de la méthode virtuelle 'com.google.android.gms.maps.Projection com.google.android.gms.maps.GoogleMap.getProjection()' sur une référence d'objet nul – ben