简介

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

您将建立什么

在这个Codelab中,你将使用已经创建好的Demo Project实现对华为Identity开放服务的API调用,通过Demo Project你可以体验到:

您将会学到什么

硬件要求

软件要求

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

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

下载代码

下载并解压CodeLab_Identity_Demo.zip

源码下载

在Android Studio中打开工作项目

  1. 打开Android Studio。
  2. 选择"File"->"import project...",选择刚解压的源代码路径。
  3. 点击完成按钮。

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

配置SDK仓库及依赖包

在应用级build.gradle文件中配置依赖包,需添加下面内容

dependencies { // ... implementation 'com.huawei.hms:identity:4.0.4.300' }

配置混淆脚本,在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.**{*;}

点击sync now同步工程

Demo实现

在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()); } }

MainActivity.java文件的OnCreate方法中最后增加查询用户地址按钮点击事件。

queryAddrButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getUserAddress(); } });

MainActivity.java中覆写onActivityResult解析用户选择后返回的用户地址数据并显示到文本框中。

@Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); 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

您可以点击下方按钮下载源码。

源码下载

已复制代码