2015-10-02 26 views
5

Tôi đã gặp khó khăn với API Google Địa điểm, tôi cần sử dụng API địa chỉ.API địa điểm Google, nhận địa chỉ người dùng

Tôi đã sử dụng tự động autoCompleteplacePicker API, vì một số lý do API địa chỉ không hoạt động.

Tôi đã thử xem qua https://developers.google.com/android/reference/com/google/android/gms/identity/intents/Address
nhưng tôi không thể tìm ra cách sử dụng addApi() cho API địa chỉ.

Nếu ai đó có thể cung cấp một số mã mẫu hoặc thứ gì đó để tôi bắt đầu, nó sẽ được đánh giá cao.

Cảm ơn bạn trước.

+0

Bạn có muốn nhận địa chỉ của người dùng bằng cách nhận các tọa độ gps hơn không? – penta

+0

Không, tôi chỉ muốn gọi 'requestUserAddress()' để nó nhắc người dùng chia sẻ địa chỉ của mình. –

Trả lời

0

Để thêm các API Địa chỉ bạn cần phải thêm một tùy chọn như thế này:

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

Sau đó, bạn có thể yêu cầu địa chỉ:

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

Và sau đó bạn sẽ có được kết quả:

@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; 
    } 
} 

Và thêm số này vào gradle của bạn:

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

Cảm ơn bạn rất nhiều vì đã trả lời, tuy nhiên có một vấn đề. Tôi cần triển khai mã API trong một 'FragmentActivity' để tôi có thể thực hiện cuộc gọi đến' enableAutoManage() '. Ngoài ra, việc triển khai mã của bạn trong một 'Hoạt động' trả về" Một hoạt động phải được sử dụng cho các API địa chỉ "Ngoại lệ. –

+1

@MazenElian bạn nói đúng, tôi không biết tại sao API Địa chỉ không thích enableAutomanage(), trong các API khác hoạt động tốt, bạn có thể tìm giải pháp trong câu trả lời này http://stackoverflow.com/questions/30622906/ sử dụng-enableautomanage-in-fragment – isma3l

Các vấn đề liên quan