目录

Obtaining a User Address

    Step 1 Instantiate the request object by using the new UserAddressRequest method. Then, call the getUserAddress API.

  1. UserAddressRequest req = new UserAddressRequest();
  2. Task<GetUserAddressResult> task = Address.getAddressClient(this).getUserAddress(req);
  3. task.addOnSuccessListener(new OnSuccessListener<GetUserAddressResult>() {
  4.    @Override
  5.    public void onSuccess(GetUserAddressResult result) {
  6.        Log.i(TAG, "onSuccess result code:" + result.getReturnCode());
  7.        try {
  8.            startActivityForResult(result);
  9.        } catch (IntentSender.SendIntentException e) {
  10.            e.printStackTrace();
  11.        }
  12.    }
  13. }).addOnFailureListener(new OnFailureListener() {
  14.    @Override
  15.    public void onFailure(Exception e) {
  16.        Log.i(TAG, "on Failed result code:" + e.getMessage());
  17.    }
  18. });

    Step 2 Display the address selection page by calling the startResolutionForResult method of Status.

  1. private void startActivityForResult(GetUserAddressResult result) throws IntentSender.SendIntentException {
  2.    Status status = result.getStatus();
  3.    if (result.getReturnCode() == 0 && status.hasResolution()) {
  4.        Log.i(TAG, "the result had resolution.");
  5.        status.startResolutionForResult(this, 1000);
  6.    } else {
  7.        Log.i(TAG, "the result hasn't resolution.");
  8.    }
  9. }

    Step 3 After the user selects an address, call the parseIntent method of UserAddress in onActivityResult of the page and obtain the address from the returned result.

  1. @Override
  2. protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
  3.    super.onActivityResult(requestCode, resultCode, data);
  4.    Log.i(TAG, "requestCode=" + requestCode + ", resultCode=" + resultCode);
  5.    if (resultCode == Activity.RESULT_OK) {
  6.        UserAddress userAddress = UserAddress.parseIntent(data);
  7.        // Business process
  8.    } else {
  9.        // Error Handling
  10.    }
  11. }