در اندروید ۱۲ یا بالاتر، تولیدکنندگان دستگاه میتوانند به صورت اختیاری یک تجربه اتصال سادهشده را اتخاذ کنند که به کاربران کمک میکند تا اتصالات شبکه خود را بهتر درک کنند، بین ارائهدهندگان اینترنت جابجا شوند و مشکلات اتصال شبکه را عیبیابی کنند. این تغییرات در تجربه کاربری در مقایسه با اندروید ۱۱ یا پایینتر، در رابط کاربری، آیکونوگرافی و تغییرات API برای تنظیمات سریع و تنظیمات منعکس شده است. همه این تغییرات در AOSP برای تولیدکنندگان دستگاه در دسترس است تا آن را به همان صورت فعال کنند یا سفارشیسازی کنند.
مرور کلی تجربه اتصال سادهشده
این بخش تغییرات عمده رابط کاربری در تجربه اتصال سادهشده در AOSP را که از اندروید ۱۲ شروع میشود، شرح میدهد.
کاشی اینترنت در تنظیمات سریع
منوی تنظیمات سریع شامل یک کاشی اینترنت است که یک پنل اینترنت را باز میکند که در آن کاربران میتوانند بین اتصالات وایفای و تلفن همراه جابجا شوند. کاشی اینترنت، کاشیهای وایفای و داده تلفن همراه مورد استفاده در اندروید ۱۱ یا پایینتر را ترکیب میکند.

شکل 1. کاشی اینترنت در تنظیمات سریع
بخش تماسها و پیامکها در تنظیمات
برنامه تنظیمات شامل بخش تماسها و پیامکها در زیر شبکه و اینترنت است که وضعیت در دسترس بودن و گزینههای تماس از طریق وایفای را نمایش میدهد.

شکل ۲. بخش تماسها و پیامکها در تنظیمات
دکمه تنظیم مجدد در تنظیمات
در برنامه تنظیمات، در مسیر Network & Internet > Internet یک دکمه تنظیم مجدد وجود دارد که به کاربران امکان میدهد مودمهای تلفن و Wi-Fi را در دستگاه تنظیم مجدد کنند، که میتواند هنگام عیبیابی مشکلات اتصال شبکه مفید باشد.

شکل ۳. دکمه تنظیم مجدد برای عیبیابی مشکلات اتصال
پیادهسازی
برای فعال کردن تجربه اتصال سادهشده در دستگاه خود، از پرچم تنظیمات سراسری زیر استفاده کنید:
- نام:
persist.sys.fflag.override.settings_provider_model - نوع: بولی
- مقدار: برای فعال کردن رفتار سادهسازی اتصال، روی
falseو برای غیرفعال کردن آن و استفاده از رفتار قدیمی، رویtrueتنظیم کنید. از اندروید ۱۲ به بعد، مسیر کد مربوط بهfalseدیگر به طور فعال نگهداری نمیشود.
علاوه بر این، میتوانید حالتهای زیر از رابط کاربری را برای هر اپراتور با استفاده از پیکربندی اپراتور پیکربندی کنید. کلیدهای پیکربندی عبارتند از:
-
CarrierConfigManager#KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL: یک مقدار بولی که نشان میدهد آیا اپراتور، شبکههای Wi-Fi را که بخشی از شبکه اصلی آن هستند و به عنوان بخشی از شبکه تلفن همراه نمایش داده میشوند، پیکربندی میکند یا خیر. این تابع به همراه متدWifiNetworkSuggestion.Builder#setCarrierMerged(booleanisCarrierMerged)کار میکند. -
CarrierConfigManager#KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL: یک مقدار بولی که نشان میدهد آیا اتصال شبکه داده (IP) به عنوان یک شرط تکمیلی برای نمایش آیکون عدم تماس استفاده میشود یا خیر. -
CarrierConfigManager#KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL: یک مقدار بولی که نشان میدهد آیا آیکون قدرت تماس در رابط کاربری سیستم نمایش داده میشود یا خیر.
APIهای چارچوب
برای غیرفعال کردن موقت شبکههای وایفای نزدیک، از APIهای زیر استفاده کنید:
-
WifiManager#startRestrictingAutoJoinToSubscriptionId(int subscriptionId): به کاربر اجازه میدهد بدون غیرفعال کردن وایفای، یک شبکه اپراتور را انتخاب کند. تمام شبکههای وایفای قابل مشاهده را برای حداقل مدت زمان 30 دقیقه (که از طریق پوششconfig_wifiAllNonCarrierMergedWifiMinDisableDurationMinutesکنترل میشود) و حداکثر مدت زمان 6 ساعت (که از طریق پوششconfig_wifiAllNonCarrierMergedWifiMaxDisableDurationMinutesکنترل میشود) غیرفعال میکند. شبکههای وایفای هر زمان که وایفای فعال شود، دستگاه راهاندازی مجدد شود، اگر کاربر یک شبکه وایفای را انتخاب کند (که در این صورت APIstopRestrictingAutoJoinToSubscriptionId()توسط تنظیمات اجرا میشود) یا اگر شبکه به مدت 60 دقیقه قابل مشاهده نباشد، دوباره فعال میشوند. -
WifiManager#stopRestrictingAutoJoinToSubscriptionId(): عملکرد عادی را بازیابی میکند.
برای پشتیبانی از دکمهی ریست و رابط کاربری عیبیابی، که در کلاس com.android.settingslib.connectivity.ConnectivitySubsystemsRecoveryManager پیادهسازی شده است، از APIهای زیر استفاده کنید:
-
WifiManager#restartWifiSubsystem(String reason): زیرسیستم وایفای را مجدداً راهاندازی میکند. -
TelephonyManager#rebootRadio(): مودم رادیویی را ریست میکند.
با چندین اپراتور کار کنید
اگر تجربه اتصال سادهشده را برای برخی از اپراتورها اتخاذ میکنید اما برای برخی دیگر نه، از سناریوی چند سیمکارت آگاه باشید، که در آن کاربر از دو سیمکارت استفاده میکند، یکی از سیمکارتهای اپراتوری که تغییرات رابط کاربری را پذیرفته و دیگری نه. در این سناریو، مطمئن شوید که کاربران کدام رابط کاربری را میبینند و رفتار را روی دستگاههای خود به طور کامل آزمایش کنید.