Dialer به یک چارچوب یکپارچه اشکال زدایی و آزمایش مجهز است که به شما امکان می دهد تا ویژگی های برنامه Dialer را بدون نیاز به دستگاه های آماده تماس تأیید کنید. این امر نیاز به بلوتوث و تلفن های متصل با سرویس تلفن همراه را از بین می برد. این چارچوب تست شماره گیر (DTF) این فرآیندها را ساده می کند:
- راه اندازی یک دستگاه واقعی برای تأیید سریع ایده ها معمولاً زمان می برد.
- آزمایش ویژگی های چند تماس حداقل به سه تلفن مجهز به سیم کارت نیاز دارد که دو مورد از آنها فقط برای برقراری تماس استفاده می شود.
- اشکال زدایی Dialer و وابستگی های آن.
از آنجایی که عملکرد Dialer به چندین پشته فناوری از جمله Telecom، Telephony، و Bluetooth Hands Free Profile (HFP) بستگی دارد، اشکالات و مشکلاتی که در این وابستگی ها ایجاد می شود می تواند باعث شل شدن Dialer شود. DTF Dialer را قادر می سازد تا مستقل از این وابستگی ها اجرا شود.
ویژگی ها
DTF این ویژگی ها را ارائه می دهد:
- قرار دادن تماس. برقراری و دریافت تماس بدون نیاز به دستگاه آماده تماس از طریق ترمینال با پخش Android Debug Bridge (adb) .
- تماس های ساختگی عملکرد تماس مورد تمسخر قرار می گیرد. این شامل نگه داشتن، نادیده گرفتن، ادغام و قطع ارتباط است.
از DTF استفاده کنید
توجه: DTF فقط در اندروید 11 یا بالاتر موجود است.
برای استفاده از DTF:
- نوع ساخت
CarDialerAppForTesting
را به صورت زیر بسازید و نصب کنید:cd %rRepoRoot%/packages/apps/Car/Dialer m CarDialerAppForTesting adb install %rRepoRoot%/out/target/product/%buildTarget%/system/priv-app/CarDialerAppForTesting/CarDialerAppForTesting.apk
در نتیجه،
CarDialerAppForTesting
جایگزین برنامه Dialer اصلی در دستگاه تست می شود.CarDialerAppForTesting
با دستگاه های واقعی کار نمی کند. برای آزمایش با یک دستگاه واقعی،CarDialerApp.apk
دوباره نصب کنید.
دستورات
دستورات adb زیر فقط پس از راه اندازی Dialer برای اولین بار کار می کنند و نیاز به مقداردهی اولیه گیرنده پخش دارند. پس از راه اندازی Dialer، یک دستگاه بلوتوث جعلی باید متصل شود. برای این کار از دستور زیر (Setup) Connect a device استفاده کنید.
(تنظیم) یک دستگاه را وصل کنید
اتصال بلوتوث جعلی را با Dialer برقرار میکند و برای فعال کردن دسترسی به همه دستورات مربوط به تماس، ابتدا باید فراخوانی شود.
برای اتصال یک دستگاه:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "connect"
توجه: تنها پس از اتصال یک دستگاه بلوتوث جعلی می توان از هر یک از دستورات زیر استفاده کرد.
تماس خروجی برقرار کنید
برای برقراری تماس خروجی:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "addCall" --es "id" "4085524874"
تماس دریافتی را دریافت کنید
برای دریافت تماس ورودی:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "rcvCall" --es "id" "4085524874"
پایان دادن به تماس
برای پایان دادن به تماس:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "endCall" --es "id" "4085524874"
تماس فعلی را نگه دارید
برای قرار دادن تماس فعلی در انتظار:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "holdCall"
تماس فعلی را لغو کنید
برای خاموش کردن تماس فعلی، منتظر بمانید:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "unholdCall"
ادغام تماس ها
تماس های اولیه و ثانویه را در یک تماس کنفرانسی ادغام کنید. این دستور فقط زمانی کار می کند که هر دو تماس اولیه و ثانویه وجود داشته باشد. یک کنفرانس تلفنی موجود به عنوان یک موجودیت واحد در نظر گرفته می شود.
برای ادغام تماس ها:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "unholdCall"
تمام تماس ها را پاک کنید
برای حذف همه تماسهای موجود در فهرست تماسها:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "clearAll"
ساخت شبیه ساز
گاهی اوقات ممکن است توسعه دهندگان بخواهند تغییرات رابط کاربری را روی یک شبیه ساز آزمایش کنند. در چنین مواردی، CarDialerAppEmulatorBuild
یک راه اندازی ساده و عملکرد محدود در مقایسه با DTF قدرتمندتر ارائه می دهد.
داده های تست
هنگامی که Dialer راه اندازی می شود، صفحه خطای بلوتوث دور زده می شود و محتوای اصلی TelecomActivity
نمایش داده می شود. تماس ها و گزارش تماس ها در دستگاه محلی نمایش داده می شوند. برنامهنویسان میتوانند از برنامه Stock Contacts برای ایجاد مخاطبین آزمایشی یا وارد کردن یک فایل .vcf
. استفاده کنند.
مسخره صدا کن
برای تمسخر تماس های ورودی، از شبیه ساز اندروید برای ارسال دستورات Telnet استفاده کنید. برای کسب اطلاعات بیشتر، به اجرای برنامهها در شبیهساز Android و دستورات کنسول Send Emulator مراجعه کنید.
telnet localhost 5554 gsm call xxx-xxx-xxxx
برقراری تماس تلفنی در برنامه Dialer یا پخش یک هدف تماس، یک تماس خروجی را شروع می کند.
adb shell am start -a android.intent.action.CALL tel:xxx-xxx-xxxx