وفي Android 10، تسمح خدمة اقتراح حساب الهاتف بعرض اقتراحات لحسابات الهاتف للمستخدمين عند إجراء مكالمة. على سبيل المثال، بالنسبة إلى المستخدمين الذين لديهم جهاز يتضمّن شرائح SIM متعددة وأسعار أقل للمكالمات داخل الشبكة، تحدِّد هذه الخدمة أولاً مشغّل شبكة الجوّال الذي يتم الاتصال به، ثم تقترح استخدام شريحة SIM على الشبكة نفسها للمُستلم به.
خدمة اقتراح حسابات الهاتف اختيارية ويمكن تنفيذها على الأجهزة التي تعمل بنظام التشغيل Android 10 أو إصدار أحدث.
التنفيذ
لتنفيذ اقتراحات حسابات الهواتف، نفِّذ خدمة واحدة
PhoneAccountSuggestionService
في تطبيق يقع في /system/priv-app/
. لا تتم معالجة طلب البحث في الخدمة إذا تم تنفيذ أكثر من PhoneAccountSuggestionService
واحدة. يجب أن تذكر
الخدمة إذن
android.Manifest.permission.BIND_PHONE_ACCOUNT_SUGGESTION_SERVICE
.
عندما يجري مستخدم مكالمة خارجية بدون ضبط
حساب الهاتف التلقائي للمكالمات الصادرة
أو
حساب الهاتف المفضّل
للمُتصل به، ترتبط خدمة الاتصالات السلكية واللاسلكية بملف تعريف العميل
PhoneAccountSuggestionService
لجمع معلومات عن الحسابات، ويتم استدعاء
onAccountSuggestionRequest(String number)
، ويتم تعليق عملية المكالمة الصادرة.
على "PhoneAccountSuggestionService
" الاتصال بالرقم
suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions)
مع الرقم الذي يعرضه
onAccountSuggestionRequest(String number)
.
عند استدعاء
suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions)
، تعرض خدمة الاتصالات قائمة بحسابات الهاتف المقترَحة. يجب على
برنامج الاتصال بعد ذلك عرض قائمة بحسابات الهاتف المقترحة
للمستخدم للاختيار من بينها لإجراء المكالمة.
PhoneAccountSuggestion
لتقديم اقتراحات، استخدِم فئة
PhoneAccountSuggestion.
على سبيل المثال، إذا تبيّن للخدمة أنّ المستخدم الذي يتم الاتصال به يستخدم مشغّل شبكة الجوّال نفسه لإحدى
شرائح SIM في الجهاز، يجب أن تضع الخدمة علامة REASON_INTRA_CARRIER
على حساب الهاتف.
ويمكن بعد ذلك إرسال هذه المعلومات إلى المستخدم في تطبيق الاتصال.
على سبيل المثال، في حال ضبط المستخدم للجهاز لاستخدام
شريحة SIM للعمل مع جميع جهات الاتصال
في حساب Google للعمل، على الخدمة وضع علامة على حساب الهاتف باستخدام
REASON_USER_SET
وضبط
shouldAutoSelect
على true للسماح لتطبيق الاتصال بتجاوز مربّع الحوار للاختيار وتلقائيًا
إجراء المكالمة باستخدام حساب الهاتف.
للحصول على معلومات عن الاقتراحات الأخرى، يُرجى الاطّلاع على
PhoneAccountSuggestion
.
Dialer
عندما تدخل المكالمة في حالة
STATE_SELECT_PHONE_ACCOUNT
، يجب أن يستخدِم تطبيق الاتصال المعلومات الواردة من
PhoneAccountSuggestion
للتعامل مع
EXTRA_SUGGESTED_PHONE_ACCOUNTS
.
إيقاف الخدمة
لتخصيص عملية التنفيذ لمشغّلي شبكات الجوّال المحدّدين، يمكنك تفعيل الخدمة أو
إيقافها باستخدام
setComponentEnabledSetting
.
لا يتم طلب الخدمة إذا كانت غير مفعّلة.
تنفيذ واجهة مستخدم النظام
قد تكون هناك حاجة إلى إجراء تغييرات على واجهة مستخدم النظام، وذلك استنادًا إلى عملية التنفيذ. على سبيل المثال، للسماح للمستخدمين بتحديد أنّ جميع المكالمات التي يتم إجراؤها إلى جهة اتصال معيّنة تتم من حساب هاتف معيّن، يجب تنفيذ عملية إعداد مخصّصة وواجهة مستخدم مخصّصة للإعدادات على الجهاز.
التحقُّق
للتأكّد من صحة عملية التنفيذ، عليك إجراء اختبارات CTS التالية:
/cts/tests/tests/telecom/src/android/telecom/cts/PhoneAccountSuggestionServiceTest.java
/cts/tests/tests/telecom/src/android/telecom/cts/PhoneAccountSuggestionTest.java