اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
التفاصيل الفنية
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يوضِّح الرسم البياني التالي مكونات النظام التي تتفاعل مع تطبيق "المخطِّط":

الشكل 1: المكوّنات التي تتفاعل مع تطبيق "الهاتف"
-
واجهة مستخدِم النظام: سمة التنقّل السفلية لاستضافة زر "الهاتف" الذي
يسجّل نية intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;package=com.android.car.dialer;launchFlags=0x10000000;end
يؤدي ذلك إلى بدء النشاط الرئيسي للمستخدم، وهو TelecomActivity
.
-
مشغّل التطبيقات: تُدير قائمة التطبيقات بأكملها. يعرِّف تطبيق "أداة الاتصال"
TelecomActivity باستخدام android.intent.category.LAUNCHER
. يؤدي اختيار تطبيق الهاتف من
قائمة تطبيقات مشغّل التطبيقات إلى عرض TelecomActivity.
-
تطبيق Home المصغّر: في مرجع AOSP، لا يتوفّر تطبيق مصغّر لتطبيق Home. قد تحتاج المصنّعين الأصليّين للأجهزة إلى
النظر في إضافة تطبيق مصغّر "للصفحة الرئيسية" في تطبيق "أداة الاتصال" لعرض حالة الهاتف المتصل الحالي (بالإضافة إلى
معلومات أخرى).
-
مركز الإشعارات
-
يتم عرض إشعار "تنبيه" (HUN) للمكالمات الواردة. عندما يتلقّى تطبيق "الهاتف"
InCallServiceImpl
مكالمة واردة، ينشر التطبيق إشعارًا بحالة عدم الردّ في
مركز الإشعارات، والذي يعرض تفاصيل المكالمة، مثل رقم الهاتف أو معلومات الاتصال.
ويعرض تطبيق "الهاتف" أيضًا زرَّي إجراء، وهما "ردّ" و"رفض". من خلال النقر على زر "الرد"،
يتم الردّ على المكالمة ويعالج InCallServiceImpl
المكالمة النشطة لعرض
واجهة مستخدم تطبيق "الهاتف" أثناء المكالمة وإغلاق شاشة "المساعدة الذكية". يؤدي النقر على رمز HUN إلى عرض صفحة "أثناء المكالمة"
في وضع ملء الشاشة مع زرَّي "الرد" و"رفض".
-
يظهر إشعار بالمكالمات الفائتة غير المقروءة. يؤدي النقر على الإشعار
إلى عرض صفحة "سجلّ المكالمات" ووضع علامة "مقروءة" على المكالمات الفائتة. يؤدي النقر على زر
"الاتصال مرة أخرى" إلى إجراء مكالمة وعرض واجهة مستخدم "الاتصال أثناء المكالمة" في تطبيق "أداة الاتصال".
-
مساعِد Google يمكن للمستخدمين أن يطلبوا من أحد المساعدين إجراء مكالمة قد تعرض
واجهة مستخدم تطبيق "الهاتف" أثناء المكالمة.
-
خرائط Google: عند الاتصال بالتاجر من "خرائط Google"، يتم إرسال نية DIAL
مع إضافات أرقام الهواتف التي ستبدأ صفحة لوحة المفاتيح للاتصال السريع.
-
CarInputService. ترصد هذه السمة المفتاح المادي لزرَّي "الاتصال" و"إنهاء المكالمة"
على عجلة القيادة. الضغط على:
-
عند الضغط على زر الاتصال من عجلة القيادة بدون وجود مكالمة واردة، يتم إرسال نية DIAL
وعرض صفحة لوحة المفاتيح في تطبيق "الهاتف".
-
يؤدي الضغط على زر الاتصال من عجلة القيادة عند تلقّي مكالمة واردة إلى بدء
TelecomManager للردّ على المكالمة.
-
عند الضغط على زر "إنهاء المكالمة" من عجلة القيادة عندما تكون هناك مكالمة واردة،
يُنهي TelecomManager المكالمة.
-
البلوتوث
-
PBAPClient. تنزيل جهات الاتصال من هاتف وكتابتها في ملف العميل لدى
مقدّم خدمة جهات الاتصال بالنسبة إلى كل هاتف متصل، يتم إنشاء حساب باستخدام
عنوان MAC الخاص بالبلوتوث للجهاز كاسم الحساب وcom.android.bluetooth.pbapsink
(@string/pbap_account_type
محدّد في packages/apps/Bluetooth
) ك نوع
الحساب. يتم كتابة جهات الاتصال المكتوبة لمقدّم جهات الاتصال باستخدام معلومات
الحساب ويتم محوها عند فصل الهاتف. لا يتفاعل PBAPClient
مباشرةً مع "برنامج الاتصال"، بل يكتب جهات الاتصال بدلاً من ذلك في "موفِّر جهات الاتصال". تطبيق "أداة الاتصال": قراءة جهات الاتصال من مقدّم جهات الاتصال
-
HfpClientConnectionService
. تدير مكالمة البلوتوث
من خلال بروتوكول HFP وتبلِّغ عن المكالمة لخدمات الاتصالات.
-
الاتصالات: يدير إطار عمل Android Telecom المكالمات الصوتية ومكالمات الفيديو على
جهاز Android. بما أنّ تطبيق Dialer هو تطبيق الهاتف التلقائي، فهو ينفِّذ واجهة برمجة التطبيقات
InCallService
وInCallController
ستربط تنفيذ InCallService في Dialer لمعالجة المكالمات. لمزيد من التفاصيل، يُرجى الاطّلاع على
إنشاء
تطبيق هاتف بديل و
الحصول على
وضع تطبيق الهاتف التلقائي.
-
إعدادات النظام يتتبّع تطبيق "أداة الاتصال" قائمة الأجهزة المتصلة عبر بروتوكول HFP ويعرض
رسالة خطأ عندما لا تكون هناك هواتف متصلة بأداة الاتصال عبر البلوتوث. في مرجع AOSP
، ينقل الزر "الاتصال بالبلوتوث" المستخدمين إلى صفحة "إعدادات البلوتوث"
في النظام لإقران جهاز جديد أو الاتصال بجهاز مقترن.
-
محرك تشتت انتباه السائق: تفرض خدمة نظام Android هذه قيودًا على تجربة المستخدم
بناءً على حالة القيادة في السيارة. يجب أن ينفذ تطبيق "أداة الاتصال" جميع القيود المفروضة على تجربة المستخدم أثناء القيادة
لتجنّب تشتيت الانتباه.ولإجراء ذلك، يجب أن يستمع تطبيق "أداة الاتصال" إلى CarUXRestrictionManager
وينفّذ جميع السياسات. يجب أن يستوفي تطبيق الاتصال الشروط التالية:
-
اربط مكتبة Car
واحصل على مثيل
CarUXRestrictionManager.
-
اشترِك في التحديثات في قائمة
CarUxRestrictions
ونفِّذها كما هو موضّح في المستندات.
-
من المعلومات المهمة بشكل خاص في تطبيق "أداة الاتصال":
-
صفحة الإعدادات محسَّنة للمركبة. تعذّر على المستخدم الوصول إلى
صفحة "إعدادات تطبيق الاتصال" أثناء القيادة. من خلال النقر على قائمة "الإعدادات" من شريط الإجراءات،
يتم عرض شاشة حظر لمنع المستخدم من الوصول إلى "الإعدادات" أثناء
القيادة. إذا كانت صفحة "الإعدادات" معروضة، ستظهر شاشة الحظر لمحاولة
إيقاف تفاعل المستخدم.
-
لا يمكن الوصول إلى إعدادات النظام أثناء القيادة. في صفحة الخطأ،
عندما لا تكون هناك أجهزة بلوتوث متصلة، يعرض الزر "الاتصال بالبلوتوث"
صفحة إعدادات البلوتوث في النظام. تم حظر استخدام ميزة "التحسين المستند إلى تجارب المستخدمين" لهذا الزر بالكامل.
أثناء القيادة، يؤدي النقر على هذا الزر إلى عرض رسالة خطأ لإعلام
المستخدم بضرورة ركن السيارة أولاً ثم تنفيذ الإجراء.
-
لا يمكن للمستخدم بدء عملية إضافة المحتوى إلى المفضلة أثناء القيادة. زر "إضافة
جهة اتصال مفضّلة" غير مفعَّل.
مسارات المستخدم
Dialer Main
في ما يلي الصفحات المختلفة لتطبيق "أداة الاتصال".

الشكل 2: صفحة تطبيق "الهاتف" الرئيسية
معالجة المكالمات
في ما يلي مسار عملية معالجة المكالمات:

الشكل 3: معالجة المكالمات
الإشعارات
في ما يلي صفحات الإشعارات المختلفة:

الشكل 4: الإشعارات
حالة المكالمة الجارية
في ما يلي مسار الصفحة أثناء المكالمة:

الشكل 5: صفحة "أثناء المكالمة"
البحث
تشمل شاشات "بحث Google" ما يلي:

الشكل 6: البحث
الإعدادات
في ما يلي خيارات "الإعدادات":

الشكل 7: الإعدادات
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Technical details\n\nThe following diagram illustrates the system components that interact with Dialer:\n\n**Figure 1.** Components that interact with Dialer\n\n- **System UI.** Lower navigation facet to host the Phone button, which\n registers the `intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;package=com.android.car.dialer;launchFlags=0x10000000;end` intent.\n This starts the user's main activity, `TelecomActivity`.\n\n- **App Launcher.** Manages the entire app list. Dialer declares\n TelecomActivity with `android.intent.category.LAUNCHER`. Selecting the phone app from\n the launcher's app list displays TelecomActivity.\n\n- **Home widget.** In AOSP reference, there is no Home widget. OEMs might want to\n consider adding a Home widget for Dialer to display the state of the current connected phone (as\n well as other information).\n\n- **Notification Center**\n\n - **Heads Up Notification (HUN) is displayed for incoming calls.** When the Dialer\n `InCallServiceImpl` receives an incoming call, Dialer posts a HUN to the\n Notification center, which shows the call details, such as phone number or contact info.\n Dialer also displays two action buttons, Answer and Decline. By tapping Answer button,\n the call is answered and `InCallServiceImpl` handles the active call to show\n Dialer's in call UI and dismisses the HUN. Clicking on the HUN displays the fullscreen\n InCall page with the Answer and Reject buttons.\n\n - **Notification appears for unread missed calls.** Clicking on the\n notification displays the Call History page and marks missed calls as read. Tapping the\n Call Back button places a call and displays the Dialer's InCall user interface.\n\n- **Assistant.** Users can ask an assistant to make a call that may display the\n Dialer InCall user interface.\n\n- **Google Maps.**Calling a merchant from Google Maps sends the DIAL\n intent with extras of phone numbers which will start Dialpad page for quick dialing.\n\n- **CarInputService.**Monitors the physical key of the Call and End Call\n buttons on the steering wheel. Pressing the:\n\n - Call button from the steering wheel when there is no incoming call sends the DIAL\n intent and displays the Dialpad page of Dialer.\n\n - Call button from the steering wheel when there is an incoming call causes the\n TelecomManager to answer the call.\n\n - End Call button from the steering wheel when there is an incoming call, the\n TelecomManager ends the call.\n\n- **Bluetooth**\n\n - **PBAPClient.** Downloads contacts from a phone and writes to the\n contacts provider. For each phone connected, an account is created with the device's\n Bluetooth MAC address as the account name and `com.android.bluetooth.pbapsink`\n (`@string/pbap_account_type` defined in `packages/apps/Bluetooth`) as\n the account type. Contacts written to the contacts provider are written with the account\n information and are cleared when the phone is disconnected. `PBAPClient` doesn't\n interact directly with Dialer but instead writes contacts to the Contacts Provider. Dialer\n reads the contacts from the Contacts Provider.\n\n - **`HfpClientConnectionService`.** Manages the Bluetooth call\n through HFP and reports the call to the Telecom services.\n\n- **Telecom.** The Android Telecom framework manages audio and video calls on an\n Android device. Since Dialer is the default phone app, it implements the\n [InCallService](https://developer.android.com/reference/android/telecom/InCallService.html)\n APIs and `InCallController` will bind the Dialer's InCallService implementation to\n handle calls. For more details, see\n [Create\n a replacement phone app](https://developer.android.com/guide/topics/connectivity/telecom#replacePhoneApp) and\n [Becoming\n the Default Phone App](https://developer.android.com/reference/android/telecom/InCallService.html#becoming-the-default-phone-app).\n\n- **System Settings.** Dialer monitors the HFP-connected device list and displays\n an error message when no phones are connected to dialer through Bluetooth. In the AOSP\n reference, the Connect to Bluetooth button links users to the system Bluetooth Settings\n page to pair a new device or to connect to a paired device.\n\n- **Driver Distraction Engine.** This Android system service imposes UX\n restrictions based on the driving state of the car. Dialer must execute all UX driving\n distraction restrictions.To do so, Dialer must listen to the\n [CarUXRestrictionManager](https://developer.android.com/reference/android/car/drivingstate/CarUxRestrictionsManager)\n and implement all policies. Dialer must:\n\n - Connect to the [Car](https://developer.android.com/reference/android/car/Car)\n library and obtain an instance of\n [CarUXRestrictionManager](https://developer.android.com/reference/android/car/drivingstate/CarUxRestrictionsManager).\n\n - Subscribe to updates in the list of\n [CarUxRestrictions](https://developer.android.com/reference/android/car/drivingstate/CarUxRestrictions)\n and implement them as documented.\n\n - Of particular importance to Dialer:\n\n - **Settings page is vehicle-optimized.** User could not access the\n Dialer Settings page when driving. By tapping on the Settings menu from the action bar,\n a blocking screen is displayed to prevent the user from accessing Settings while\n driving. If the Settings page is already displayed, the blocking screen will pop up to\n stop the user interaction.\n\n - **System settings cannot be accessed while driving.** On the Error page,\n when no Bluetooth devices are connected, a Connect to Bluetooth button displays the\n system Bluetooth settings page. The UXR of this button is fully restricted.\n While driving, clicking on this button displays an error message to inform the\n user to park the car first and then perform the action.\n\n - **User cannot start the add-to-favorite flow while driving.** The Add a\n Favorite button is disabled.\n\nUser flows\n----------\n\n### Dialer Main\n\nThe different pages for Dialer are provided below.\n\n**Figure 2.** Main Dialer page\n\n### Call handling\n\nThe call handing process flow is presented below:\n\n**Figure 3.** Call handling\n\n### Notifications\n\nThe different notifications pages are displayed below:\n\n**Figure 4.** Notifications\n\n### InCall status\n\nThe InCall page flow is shown below:\n\n**Figure 5.** InCall page\n\n### Search\n\nThe Search displays are:\n\n**Figure 6.** Search\n\n### Settings\n\nThe Settings options are:\n\n**Figure 7.** Settings"]]