This API is used to display the address selection page when your app needs to use the user's address-related information, such as name, contact, and detailed address. After the user selects an address on the page, the API returns the address to the app.
Java
// Instantiate a UserAddressRequest object.
UserAddressRequest req = new UserAddressRequest();
// Call the getUserAddress API.
Task<GetUserAddressResult> task = Address.getAddressClient(this).getUserAddress(req);
task.addOnSuccessListener(new OnSuccessListener<GetUserAddressResult>() {
@Override
public void onSuccess(GetUserAddressResult result) {
// Callback upon success.
Log.i("IdentityKit", "onSuccess result code:" + result.getReturnCode());
try {
startActivityForResult(result);
} catch (IntentSender.SendIntentException e) {
e.printStackTrace();
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
// Callback upon failure.
Log.i("IdentityKit", "on Failed result code:" + e.getMessage());
}
}); Kotlin
// Call the getUserAddress API.
val task = Address.getAddressClient(this@MainActivity).getUserAddress(UserAddressRequest())
task.apply {
addOnSuccessListener {
// Callback upon success.
Log.i("IdentityKit", "onSuccess result code: ${it.returnCode}")
try {
startActivityForResult(it)
} catch (e: IntentSender.SendIntentException) {
e.printStackTrace()
}
}.addOnFailureListener {
// Callback upon failure.
Log.i("IdentityKit", "onFailed resultCode: ${it.message}")
}
} Java private void startActivityForResult(GetUserAddressResult result) throws IntentSender.SendIntentException { Status status = result.getStatus(); if (result.getReturnCode() == 0 && status.hasResolution()) { Log.i("IdentityKit", "the result had resolution."); status.startResolutionForResult(this, 1000); } else { Log.i("IdentityKit", "the result hasn't resolution."); } }
Kotlin private fun startActivityForResult(result: GetUserAddressResult) { val status: Status = result.status if (result.returnCode == 0 && status.hasResolution()) { Log.i("IdentityKit", "the result has resolution") status.startResolutionForResult(this@MainActivity, 1000) } else { Log.i("IdentityKit", "the result hasn't resolution") } }
Java
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.i("IdentityKit", "requestCode=" + requestCode + ", resultCode=" + resultCode);
if (resultCode == Activity.RESULT_OK) {
UserAddress userAddress = UserAddress.parseIntent(data);
// Handle the service.
} else {
// Handle the error.
}
} Kotlin
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
Log.i("IdentityKit", "requestCode = $requestCode, resultCode = $resultCode");
when (resultCode) {
Activity.RESULT_OK -> {
val userAddress: UserAddress? = UserAddress.parseIntent(data)
// Handle the service.
}else -> {
// Handle the error.
}
}
}