Android 7.0 عملکرد مربوط به اعلان تماس ها را از سرویس سیستم مخابراتی در پلتفرم اندروید به برنامه Dialer منتقل می کند. پیش از این، مسئولیت نمایش اعلانهای مربوط به تماس بین Telecom و برنامه پیشفرض Dialer تقسیم میشد و ناهماهنگی در رفتار ایجاد میکرد. در Android 7.0، Dialer تمام مسئولیت رسیدگی به اعلانهای تماس را بر عهده میگیرد.
رفتار در اندروید 6.x و پایین تر
در نسخه های قبلی اندروید، Telecom و Dialer مسئولیت ها را به شرح زیر تقسیم می کنند:
عملکرد | توسط مخابرات انجام شد | توسط Dialer انجام شد |
---|---|---|
اعلان تماس ورودی | بله (زنگ، ارتعاش) | بله (نمایش اعلان، شناسه تماس گیرنده) |
ارسال به پست صوتی | آره | خیر |
آهنگ زنگ سفارشی | آره | خیر |
اعلان تماس های از دست رفته | آره | خیر |
نشانگر انتظار پیام (پست صوتی تماس) | بله (تلفن) | خیر |
اعلان های پست صوتی تصویری | خیر | آره |
نمونه هایی از رفتار ناسازگار ناشی از این تقسیم مسئولیت عبارتند از:
- مخابرات مسئول راه اندازی زنگ/ویبراتور بود، اما شماره گیر مسئول نمایش اعلان تماس ورودی بود. اگر شمارهگیر دیر راهاندازی میشود، ممکن است چند ثانیه قبل از نمایش اعلان تماس ورودی، زنگ شروع شود.
- Telecom مسئول نمایش اعلان تماس های از دست رفته بود. از آنجایی که ویژگیهای اختصاصی (مانند شناسه تماسگیرنده Google) روی این اعلانها کار نمیکنند، این میتواند منجر به ناسازگاری بین اعلانهای مخابراتی و رابط کاربر شمارهگیر (مانند گزارش تماس) شود.
رفتار در اندروید 7.0 و بالاتر
شماره گیر پروژه منبع باز Android (AOSP) عملکرد جدید را پیاده سازی می کند. برای جزئیات، به اسناد زیر مراجعه کنید:
- اعلان تماس های از دست رفته
Telecom/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java
Dialer/android/dialer/calllog/MissedCallNotificationReceiver.java
Dialer/android/dialer/calllog/MissedCallNotifier.java - پخش آهنگ های زنگ:
Frameworks/base/telecomm/java/android/telecom/InCallService.java
Telecom/src/com/android/server/telecom/InCallController.java
Dialer/java/com/android/incallui/ringtone/
Dialer/java/com/android/incallui/StatusBarNotifier.java - اعلان های VVM
Frameworks/base/telephony/java/android/telephony/TelephonyManager.java
Telephony/src/com/android/phone/PhoneInterfaceManager.java
Dialer/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
سبک اعلان تماس ها در اندروید 12 یا بالاتر
برای دستگاههای دارای Android 12 یا بالاتر، برای ارائه تجربه کاربری ثابت برای تماسها، توصیه میکنیم برنامهها از سبک اعلان CallStyle
برای تماسهای ورودی و جاری استفاده کنند. برای اطلاعات بیشتر، به اعلانهای تماس تلفنی جدید که امکان رتبهبندی اهمیت تماسهای ورودی را میدهد، مراجعه کنید.
پیاده سازی
پیادهکنندههای دستگاه ممکن است نیاز به بهروزرسانی مؤلفههای Telecom/Telephony داشته باشند که APIهای موجود برای استفاده توسط شمارهگیر پیشفرض را در معرض نمایش قرار میدهند.