2015-10-02 36 views
5

Mam problemy z Google Places API, muszę użyć interfejsu API adresu.Google umieszcza interfejs API, uzyskując adresy użytkowników

użyłem autouzupełniania i placePicker API dobrze, z jakiegoś powodu Adres API nie działa.

Próbowałem pominie ten https://developers.google.com/android/reference/com/google/android/gms/identity/intents/Address
ale nie mogłem dowiedzieć się, jak korzystać z addApi() na adres API.

Jeśli ktoś mógłby podać przykładowy kod lub coś, co mogłoby mi pomóc, byłbym bardzo wdzięczny.

Z góry dziękuję.

+0

Czy chcesz uzyskać adres użytkownika, pobierając jego współrzędne GPS? – penta

+0

Nie, chcę po prostu wywołać 'requestUserAddress()', więc prosi użytkownika o udostępnienie swoich adresów. –

Odpowiedz

0

dodać adres API trzeba dodać opcję tak:

Address.AddressOptions options = new Address.AddressOptions(AddressConstants.Themes.THEME_LIGHT); 
    mGoogleApiClient = new GoogleApiClient.Builder(this) 
     .addApi(Address.API, options) 
     .addConnectionCallbacks(this) 
     .addOnConnectionFailedListener(this) 
     .build(); 

Następnie można zażądać adres:

UserAddressRequest request = UserAddressRequest.newBuilder().build(); 
     Address.requestUserAddress(mGoogleApiClient, request, 
       REQUEST_CODE); 

a następnie dostać wynik:

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    switch (requestCode) { 
     case REQUEST_CODE: 
      switch (resultCode) { 
       case Activity.RESULT_OK: 
        UserAddress userAddress = UserAddress.fromIntent(data); 
        //DO SOMETHING 
        break; 
       case Activity.RESULT_CANCELED: 
        break; 
       default: 
        //NO ADDRESS 
        break; 
      } 
      break; 
    } 
} 

I dodaj to do swojej oceny:

compile 'com.google.android.gms:play-services-identity:8.1.0' 
+0

Dziękuję bardzo za odpowiedź, ale jest i problem. Muszę zaimplementować kod API w 'FragmentActivity', aby móc nawiązać połączenie z' enableAutoManage() '. Ponadto zaimplementowanie twojego kodu w 'Activity' zwraca" wyjątek "musi być użyty dla API adresów". –

+1

@MazenElian masz rację, nie wiem dlaczego API adresu nie podoba się enableAutomanage(), w innych API działa dobrze, możesz znaleźć obejście tej odpowiedzi http://stackoverflow.com/questions/30622906/ using-enableautomanage-in-fragment – isma3l

Powiązane problemy