החל מ-27 במרץ 2025, מומלץ להשתמש ב-android-latest-release
במקום ב-aosp-main
כדי ליצור תרומות ל-AOSP. מידע נוסף זמין במאמר שינויים ב-AOSP.
הרצת בדיקות NFC במספר מכשירים (Android 15)
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
במסמך הזה נסביר איך מריצים בדיקות NFC במספר מכשירים.
עמידה בדרישות מוקדמות
לפני שמריצים בדיקות NFC במספר מכשירים, צריך לבצע את הפעולות הבאות:
- מכינים מכשיר עם הטמעת Android 15.
- פועלים לפי הדרישות של CTS-V.
- פועלים לפי ההגדרה של CTS-V.
הכנת מכשיר הבדיקה (DUT) וקורא NFC מסוג PN532 לבדיקה
אחרי שתשלימו את השלבים הקודמים, עליכם לפעול לפי השלבים הבאים כדי להכין את ה-DUT ואת קורא ה-NFC מסוג PN532 לבדיקה:
- מחברים את ה-DUT למכונה המארחת באמצעות USB.
- נותנים למארח הרשאות גישה ל-DUT דרך ADB.
מתקינים את אפליקציית CTS Verifier (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
מתקינים את חבילות ה-APK הנדרשות לבדיקה של NFC:
cd MultiDevice
adb install -r -g NfcEmulatorTestApp.apk
הגדרת NFC ל-DUT
כדי להגדיר את ה-NFC ב-DUT, מבצעים את השלבים הבאים:
- ב-DUT, עוברים לתפריט Settings.
- מחפשים את הקטע 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
מגדירים את המזהים הסידוריים של מכשיר הבדיקה ושל קורא ה-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-27 (שעון 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-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\""]]