از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
اجرای آزمایشهای NFC چند دستگاهی (اندروید 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، به منوی تنظیمات بروید.
- به دنبال بخش NFC یا دستگاه های متصل بگردید.
- اطمینان حاصل کنید که کلید NFC روشن است.
یک تراشه NFC را روی NFC خوان گوشی قرار دهید:
- یک تراشه NFC PN532 تهیه کنید. ما گزینه All-In-One PN532 ، غیر BLE را توصیه می کنیم.
- تراشه NFC PN532 را با استفاده از کابل USB به هاست لینوکس وصل کنید.
- همانطور که در تصویر زیر نشان داده شده است، تراشه NFC PN532 را روی NFC reader گوشی قرار دهید:

شکل 1. قرار دادن تراشه NFC.
محیط تست را تنظیم کنید
برای اجرای تنظیمات محیط تست مراحل زیر را دنبال کنید:
این دستورات را برای تنظیم محیط تست اجرا کنید:
cd MultiDevice
source build/envsetup.sh
این دستور پایتون را بررسی می کند و متغیر محیطی 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 خوان DUT و 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 Tests ضربه بزنید:

شکل 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"
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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 بهوقت ساعت هماهنگ جهانی."],[],[],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\""]]