Ab dem 27. März 2025 empfehlen wir, android-latest-release
anstelle von aosp-main
zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
NFC-Tests mit mehreren Geräten ausführen (Android 15)
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
In diesem Dokument wird beschrieben, wie NFC-Tests mit mehreren Geräten ausgeführt werden.
Voraussetzungen erfüllen
Führen Sie die folgenden Schritte aus, bevor Sie NFC-Tests mit mehreren Geräten ausführen:
- Bereiten Sie ein Gerät mit Ihrer Android 15-Implementierung vor.
- Beachten Sie die Anforderungen an CTS-V.
- Folgen Sie der Einrichtungsanleitung für CTS-V.
DUT und PN532-NFC-Lesegerät für den Test vorbereiten
Führen Sie nach Abschluss der vorherigen Schritte die folgenden Schritte aus, um einen DUT und einen PN532-NFC-Leser für den Test vorzubereiten:
- Verbinden Sie das DUT über USB mit einem Hostcomputer.
- Gewähren Sie dem Host die Berechtigung, über ADB auf die DUT zuzugreifen.
Installieren Sie die CTS Verifier App (CtsVerifier.apk
) auf dem DUT:
extract root/out/host/linux-x86/cts-verifier/android-cts-verifier.zip
cd android-cts-verifier
adb install -r -g CtsVerifier.apk
Installieren Sie die für den NFC-Test erforderlichen APKs:
cd MultiDevice
adb install -r -g NfcEmulatorTestApp.apk
NFC für das DUT einrichten
So richten Sie NFC für das DUT ein:
- Rufen Sie auf dem DUT das Menü Einstellungen auf.
- Suchen Sie nach dem Abschnitt NFC oder Verbundene Geräte.
- Achten Sie darauf, dass die NFC-Ein/Aus-Schaltfläche aktiviert ist.
Platzieren Sie einen NFC-Chip auf dem NFC-Lesegerät des Smartphones:
- Besorgen Sie sich einen PN532-NFC-Chip. Wir empfehlen die All-in-One PN532 ohne BLE.
- Schließen Sie den PN532-NFC-Chip über ein USB-Kabel an den Linux-Host an.
- Platzieren Sie den PN532-NFC-Chip wie in der Abbildung unten über dem NFC-Lesegerät des Smartphones.
Abbildung 1: Platzierung des NFC-Chips
Testumgebung einrichten
So richten Sie die Testumgebung ein:
Führen Sie die folgenden Befehle aus, um die Testumgebung einzurichten:
cd MultiDevice
source build/envsetup.sh
Mit diesem Befehl wird Python geprüft und die Umgebungsvariable PYTHONPATH
eingerichtet. Wenn keine Fehler im Terminal ausgegeben werden, ist die Umgebung bereit, die Tests für mehrere Geräte auszuführen.
Wenn während der Laufzeit die Fehlermeldung libtinfo.so.6: no version information
available (required by /bin/sh)
angezeigt wird, führen Sie den folgenden Befehl aus, um die Datei libtinfo.so.6
umzubenennen:
mv $ENV_DIRECTORY/lib/libtinfo.so.6 $ENV_DIRECTORY/lib/libtinfo.so.6.bak
Richten Sie das Testfeld ein, indem Sie die Geräteseriennummern des DUT und des PN532-NFC-Lesegeräts in MultiDevice/config.yml
festlegen:
TestBeds:
- Name: CtsNfcHceMultiDeviceTestCases-py-ctsv
Controllers:
AndroidDevice:
- serial: "<device-id>"
TestParams:
pn532_serial_path: "<pn532-serial-path>"
NFC-Tests ausführen
So führen Sie die NFC-Tests aus:
Öffnen Sie die CTS-V App und tippen Sie auf NFC-Tests:
Abbildung 2: Die CTS-V-App
Das Infofenster mit der Liste der Testfälle wird angezeigt:
Abbildung 3: CTS-V-App-Testfälle
Führen Sie die Tests auf Ihrem Host aus:
MultiDevice$ python3 tools/run_all_tests.py
Nach Abschluss der Tests werden die Testergebnisse in der CTS-V-App aktualisiert. Erfolgreiche Tests sind grün:
Abbildung 4: CTS-V-Testergebnisse
Wenn Fehler rot markiert sind, verwenden Sie den folgenden Befehl, um die fehlgeschlagenen Tests noch einmal auszuführen:
python3 tools/run_all_tests.py --test_cases "`TestCaseA`" "`TestCaseB`" --test_files "`TestFileA`"
Dabei gilt:
TestCaseA
und TestCaseB
sind die Namen der Testfälle, wie sie in CTS-V angezeigt werden.
TestFileA
ist die Testdatei mit den Testfällen.
Beispiel:
python3 tools/run_all_tests.py --test_cases "test_conflicting_non_payment" "test_conflicting_non_payment_prefix" --test_files "CtsNfcHceMultiDeviceTestCases-py-ctsv"
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (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\""]]