Начиная с 27 марта 2025 г. мы рекомендуем использовать android-latest-release
вместо aosp-main
для создания и участия в AOSP. Дополнительные сведения см. в разделе Изменения в AOSP .
Запуск тестов NFC на нескольких устройствах (Android 15)
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
В этом документе объясняется, как проводить многоустройственные тесты NFC.
Соответствовать предварительным условиям
Прежде чем запускать тесты NFC на нескольких устройствах, выполните следующие действия:
- Подготовьте устройство с установленной на нем ОС Android 15.
- Соблюдайте требования CTS-V.
- Следуйте настройке CTS-V.
Подготовьте тестируемое устройство и считыватель NFC PN532 для теста.
После завершения предыдущих шагов выполните следующие действия, чтобы подготовить тестируемое устройство и считыватель NFC PN532 для теста:
- Подключите тестируемое устройство к хост-компьютеру через USB.
- Предоставьте хосту разрешения на доступ к DUT через ADB.
Установите приложение CTS Verifier ( CtsVerifier.apk
) на проверяемое устройство:
extract root/out/host/linux-x86/cts-verifier/android-cts-verifier.zip
cd android-cts-verifier
adb install -r -g CtsVerifier.apk
Установите необходимые APK-файлы для теста NFC:
cd MultiDevice
adb install -r -g NfcEmulatorTestApp.apk
Настройте NFC для тестируемого устройства
Чтобы настроить NFC для тестируемого устройства, выполните следующие действия:
- На проверяемом устройстве перейдите в меню «Настройки» .
- Найдите раздел NFC или Подключенные устройства .
- Убедитесь, что переключатель NFC включен.
Поместите чип NFC на считыватель NFC телефона:
- Приобретите чип NFC PN532. Мы рекомендуем вариант All-In-One PN532 , не BLE.
- Подключите чип NFC PN532 к хосту Linux с помощью USB-кабеля.
- Поместите чип NFC PN532 над считывателем 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
Настройте испытательный стенд, указав серийные идентификаторы устройств DUT и считывателя NFC PN532 в MultiDevice/config.yml
:
TestBeds:
- Name: CtsNfcHceMultiDeviceTestCases-py-ctsv
Controllers:
AndroidDevice:
- serial: "<device-id>"
TestParams:
pn532_serial_path: "<pn532-serial-path>"
Запустите тесты NFC
Чтобы запустить тесты NFC:
Откройте приложение CTS-V и нажмите «Тесты 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 и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[[["Прост для понимания","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"]],["Последнее обновление: 2025-07-29 UTC."],[],[],null,["# Run multi-device NFC tests (Android 15)\n\nThis document explains how to run multi-device NFC tests.\n\nMeet prerequisites\n------------------\n\nBefore you run multi-device NFC tests, do the following:\n\n1. Prepare a device with your Android 15 implementation.\n2. Follow CTS-V [requirements](/docs/compatibility/cts/verifier#requirements).\n3. Follow CTS-V [setup](/docs/compatibility/cts/verifier#setup).\n\nPrepare a DUT and a PN532 NFC reader for the test\n-------------------------------------------------\n\nAfter you finish the previous steps, follow these steps to run\nprepare a DUT and a PN532 NFC reader for the test:\n\n1. Connect the DUT to a host machine over USB.\n2. Grant permissions for the host to access the DUT over ADB.\n3. Install the CTS Verifier app (`CtsVerifier.apk`) on the DUT:\n\n extract root/out/host/linux-x86/cts-verifier/android-cts-verifier.zip\n\n cd android-cts-verifier\n\n adb install -r -g CtsVerifier.apk\n\n4. Install the NFC test required APKs:\n\n cd MultiDevice\n\n adb install -r -g NfcEmulatorTestApp.apk\n\nSet up NFC for the DUT\n----------------------\n\nFollow these steps to run set up NFC for the DUT:\n\n1. On the DUT, go to the **Settings** menu.\n2. Look for the **NFC** or **Connected Devices** section.\n3. Ensure the NFC toggle switch is turned on.\n4. Position an NFC chip on the phone's NFC reader:\n\n 1. Acquire a PN532 NFC chip. We recommend the [All-In-One PN532](https://shop.mtoolstec.com/product/mtools-all-in-one-pn532), non-BLE option.\n 2. Attach the PN532 NFC chip to the Linux host using a USB cable.\n 3. Place the PN532 NFC chip over the phone's NFC reader as shown in the following image:\n\n **Figure 1.** NFC chip placement.\n\nSet up the test environment\n---------------------------\n\nFollow these steps to run set up the test environment:\n\n1. Run these commands to set up the test environment:\n\n cd MultiDevice\n\n source build/envsetup.sh\n\n This command checks the Python and sets up the `PYTHONPATH` environment\n variable. If no errors are printed to the terminal, the environment is ready\n to run the multi-device tests.\n\n If you see the error message `libtinfo.so.6: no version information\n available (required by /bin/sh)` at runtime, run the following command\n to rename the `libtinfo.so.6` file: \n\n mv $ENV_DIRECTORY/lib/libtinfo.so.6 $ENV_DIRECTORY/lib/libtinfo.so.6.bak\n\n2. Set up the test bed by setting the device serial IDs of the DUT and PN532 NFC\n reader in `MultiDevice/config.yml`:\n\n TestBeds:\n - Name: CtsNfcHceMultiDeviceTestCases-py-ctsv\n Controllers:\n AndroidDevice:\n - serial: \"\u003cdevice-id\u003e\"\n TestParams:\n pn532_serial_path: \"\u003cpn532-serial-path\u003e\"\n\nRun the NFC tests\n-----------------\n\nTo run the NFC tests:\n\n1. Open the CTS-V app and tap **NFC Tests**:\n\n **Figure 2.** The CTS-V app.\n\n The info window with list of test cases appears:\n\n **Figure 3.** CTS-V app test cases.\n2. Run the tests on your host:\n\n MultiDevice$ python3 tools/run_all_tests.py\n\n When the tests are completed, the test results are updated in the CTS-V\n app. Successful tests are green:\n\n **Figure 4.** CTS-V test results.\n3. If you see any failures marked in red, use the following command to rerun\n the failed tests:\n\n python3 tools/run_all_tests.py --test_cases \"`\u003cvar translate=\"no\"\u003eTestCaseA\u003c/var\u003e`\" \"`\u003cvar translate=\"no\"\u003eTestCaseB\u003c/var\u003e`\" --test_files \"`\u003cvar translate=\"no\"\u003eTestFileA\u003c/var\u003e`\"\n\n Where:\n - \u003cvar translate=\"no\"\u003eTestCaseA\u003c/var\u003e and \u003cvar translate=\"no\"\u003eTestCaseB\u003c/var\u003e are the names of the test cases as displayed in CTS-V.\n - \u003cvar translate=\"no\"\u003eTestFileA\u003c/var\u003e is the test file containing the test cases.\n\n For example: \n\n python3 tools/run_all_tests.py --test_cases \"test_conflicting_non_payment\" \"test_conflicting_non_payment_prefix\" --test_files \"CtsNfcHceMultiDeviceTestCases-py-ctsv\""]]