智能客服
你问我答,随时在线为你解决问题
此版本文档已归档不再维护,推荐您使用最新版本。
应用需要使用用户地址(姓名、联系方式、详细地址等)时,该接口用于拉起华为用户身份服务的地址选择页面,用户选择用户地址后返回应用。
1. 使用new UserAddressRequest()方法实例化请求对象,调用getUserAddress接口。
- UserAddressRequest req = new UserAddressRequest();
- Task<GetUserAddressResult> task = Address.getAddressClient(this).getUserAddress(req);
- task.addOnSuccessListener(new OnSuccessListener<GetUserAddressResult>() {
- @Override
- public void onSuccess(GetUserAddressResult result) {
- Log.i(TAG, "onSuccess result code:" + result.getReturnCode());
- try {
- startActivityForResult(result);
- } catch (IntentSender.SendIntentException e) {
- e.printStackTrace();
- }
- }
- }).addOnFailureListener(new OnFailureListener() {
- @Override
- public void onFailure(Exception e) {
- Log.i(TAG, "on Failed result code:" + e.getMessage());
- }
- });
2. 用Status的startResolutionForResult方法拉起选择华为用户身份服务的地址选择页面。
- private void startActivityForResult(GetUserAddressResult result) throws IntentSender.SendIntentException {
- Status status = result.getStatus();
- if (result.getReturnCode() == 0 && status.hasResolution()) {
- Log.i(TAG, "the result had resolution.");
- status.startResolutionForResult(this, 1000);
- } else {
- Log.i(TAG, "the result hasn't resolution.");
- }
- }
3. 选择地址完成后在页面的onActivityResult中调用UserAddress的parseIntent方法从结果中获取用户选择的地址信息。
- @Override
- protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- Log.i(TAG, "requestCode=" + requestCode + ", resultCode=" + resultCode);
- if (resultCode == Activity.RESULT_OK) {
- UserAddress userAddress = UserAddress.parseIntent(data);
- // Business process
- } else {
- // Error Handling
- }
- }