简介

用户身份服务(Identity Kit)为用户提供统一的地址管理服务,您可通过用户授权直接获取地址信息,高效便利。

您将建立什么

在这个codelab中,你将使用已经创建好的Demo Project实现对Identity Kit开放服务的API调用,通过Demo Project你可以体验到:
调用Identity Kit获取用户地址API及处理响应过程。

您将会学到什么

硬件要求

软件要求

需要的知识点

Android基础开发能力

集成HUAWEI HMS Core能力,您需要完成以下准备工作:

具体操作,请按照《HUAWEI HMS Core集成准备》中详细说明来完成。

下载代码

下载并解压Identity_Demo.zip

在Android Studio中打开工作项目

  1. 打开Android Studio,选择"File > Open",选择刚解压的源代码路径。
  2. 点击"完成"。

添加当前应用的AGC配置文件

  1. 登录AppGallery Connect网站,单击"我的项目"。
  2. 在项目列表中找到您的项目,在项目中选择需要集成HMS Core SDK的应用。
  3. 在"项目设置"页面的"应用"区域,单击"agconnect-services.json"下载配置文件。
  4. 将"agconnect-services.json"文件拷贝到应用级根目录下。

配置SDK依赖包及混淆脚本

  1. 在应用级"build.gradle"文件中配置依赖包,需添加下面内容:
    dependencies { implementation 'com.huawei.hms:***{version}***{version}' }
  2. 配置混淆脚本,在"app/proguard-rules.pro"文件中添加如下配置:

    -ignorewarnings -keepattributes *Annotation* -keepattributes Exceptions -keepattributes InnerClasses -keepattributes Signature -keepattributes SourceFile,LineNumberTable -keep class com.huawei.updatesdk.**{*;} -keep class com.huawei.hms.**{*;}
  3. 点击"sync now"同步工程。

Demo实现

  1. 在"MainActivity.java"文件中增加查询用户地址和启动选择用户地址界面。
    private void 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()); } }); } 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, GET_ADDRESS); } else { Log.i(TAG, "the response is wrong, the return code is " + result.getReturnCode()); } }
  2. 在"MainActivity.java"文件的OnCreate方法中最后增加查询用户地址按钮点击事件。
    // ToDO:user address query button queryAddrButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getUserAddress(); } });
  3. "MainActivity.java"中重写onActivityResult解析用户选择后返回的用户地址数据并显示到文本框中。
    @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); // ToDo:override the onActivityResult Log.i(TAG, "onActivityResult requestCode " + requestCode + " resultCode " + resultCode); switch (requestCode) { case GET_ADDRESS: switch (resultCode) { case Activity.RESULT_OK: UserAddress userAddress = UserAddress.parseIntent(data); if (userAddress != null) { StringBuilder sb = new StringBuilder(); sb.append("name:" + userAddress.getName() + ","); sb.append("city:" + userAddress.getAdministrativeArea() + ","); sb.append("area:" + userAddress.getLocality() + ","); sb.append("address:" + userAddress.getAddressLine1() + userAddress.getAddressLine2() + ","); sb.append("phone:" + userAddress.getPhoneNumber()); Log.i(TAG, "user address is " + sb.toString()); textView.setText(sb.toString()); } else { textView.setText("Failed to get user address."); } break; case Activity.RESULT_CANCELED: break; default: Log.i(TAG, "result is wrong, result code is " + resultCode); break; } default: break; } }

调测

测试开发完成后,点击,运行Android Studio工程打包生成APK,并安装在测试手机上,运行效果如下图所示:

干得好,您已经成功完成了codelab并学到了:

您可以阅读链接,了解更多相关的信息:开发指南API文档FAQs
您可以点击下载源码

Code copied