运行 NFC 测试

2026-07-11 20:55:15 3774

自 2026 年起,为了与我们的主干稳定开发模型保持一致,并确保生态系统的平台稳定性,我们将在第 2 季度和第 4 季度向 AOSP 发布源代码。如需构建 AOSP 并为其贡献代码,请使用 android-latest-release。android-latest-release 清单分支将始终引用推送到 AOSP 的最新版本。如需了解详情,请参阅 AOSP 变更。

AOSP

文档

兼容性

运行多设备 NFC 测试

使用集合让一切井井有条

根据您的偏好保存内容并对其进行分类。

本文档介绍如何运行多设备 NFC 测试。

满足前提条件

在运行多设备 NFC 测试之前,请满足以下条件:

准备一部搭载 Android 15 实现的设备。

遵循 CTS-V 要求。

遵循 CTS-V 设置。

为测试准备一个 DUT 和一个 PN532 NFC 读取器

完成上述步骤后,请按照以下步骤为测试准备一个 DUT 和一个 PN532 NFC 读取器:

通过 USB 将 DUT 连接到主机。

向主机授予通过 adb 访问 DUT 的权限。

将 CTS 验证程序应用 (CtsVerifier.apk) 安装到 DUT 上:

extract root/out/host/linux-x86/cts-verifier/android-cts-verifier.zip

cd android-cts-verifier

adb install -r -g CtsVerifier.apk

安装 NFC 测试所需的 APK:

cd MultiDevice

adb install -r -g NfcEmulatorTestApp.apk

为 DUT 设置 NFC

如需为 DUT 设置 NFC,请按以下步骤操作:

在 DUT 上,前往设置菜单。

找到 NFC 或已连接的设备部分。

确保 NFC 切换开关已开启。

将 NFC 芯片放置在手机的 NFC 读取器上:

获取 PN532 NFC 芯片。我们建议使用 All-In-One PN532,选择“非 BLE”选项。

使用 USB 线,将 PN532 NFC 芯片挂接到 Linux 主机。

将 PN532 NFC 芯片放在手机的 NFC 读取器上,如下图所示:

图 1. NFC 芯片放置位置。

设置测试环境

请按照以下步骤设置测试环境:

运行这些命令以设置测试环境:

cd MultiDevice

source build/envsetup.sh

此命令会检查 Python 并设置 PYTHONPATH 环境变量。如果没有错误输出到终端,则说明环境已准备好运行多设备测试。

如果您在运行时看到错误消息“libtinfo.so.6: no version information

available (required by /bin/sh)”,请运行以下命令来重命名 libtinfo.so.6 文件:

mv $ENV_DIRECTORY/lib/libtinfo.so.6 $ENV_DIRECTORY/lib/libtinfo.so.6.bak

在 MultiDevice/config.yml 中设置 DUT 和 PN532 NFC 读取器的设备序列 ID,以此搭建测试平台:

TestBeds:

- Name: CtsNfcHceMultiDeviceTestCases-py-ctsv

Controllers:

AndroidDevice:

- serial: ""

TestParams:

pn532_serial_path: ""

运行 NFC 测试

如需运行 NFC 测试,请执行以下操作:

打开 CTS-V 应用,然后点按 NFC Tests(NFC 测试):

图 2. CTS-V 应用。

系统会显示包含测试用例列表的信息窗口:

图 3. CTS-V 应用测试用例。

在主机上运行测试:

MultiDevice$ python3 tools/run_all_tests.py

测试完成后,CTS-V 应用中会更新测试结果。成功的测试显示为绿色:

图 4. CTS-V 测试结果。

如果您看到任何标记为红色的未通过结果,请使用以下命令重新运行失败的测试:

python3 tools/run_all_tests.py --test_cases "`TestCaseA`" "`TestCaseB`" --test_files "`TestFileA`"

其中:

TestCaseA 和 TestCaseB 是 CTS-V 中显示的测试用例的名称。

TestFileA 是包含测试用例的测试文件。

例如:

python3 tools/run_all_tests.py --test_cases "test_conflicting_non_payment" "test_conflicting_non_payment_prefix" --test_files "CtsNfcHceMultiDeviceTestCases-py-ctsv"

本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。

最后更新时间 (UTC):2025-05-08。

[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-05-08。"],[],[]]