في 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 . على سبيل المثال، إذا حددت الخدمة أن المستدعي موجود على نفس الناقل كإحدى بطاقات SIM الموجودة في الجهاز، فيجب أن تضع الخدمة علامة على حساب الهاتف بـ REASON_INTRA_CARRIER
. يمكن بعد ذلك نقل هذه المعلومات إلى المستخدم في برنامج الاتصال.
على سبيل المثال، في حالة قيام المستخدم بتكوين الجهاز لاستخدام بطاقة SIM للعمل لجميع جهات الاتصال في حساب Google للعمل، يجب أن تضع الخدمة علامة على حساب الهاتف بـ REASON_USER_SET
وتعيين shouldAutoSelect
على true للسماح لطالب الاتصال بتجاوز مربع حوار التحديد وإجراء المكالمة تلقائيًا باستخدام حساب الهاتف.
للحصول على معلومات حول الاقتراحات الأخرى، راجع PhoneAccountSuggestion
.
المسجل
عندما تدخل المكالمة إلى حالة 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