اندروید ۷.۰ عملکردهای مربوط به اعلانهای تماس را از سرویس سیستم Telecom در پلتفرم اندروید به برنامه Dialer منتقل میکند. پیش از این، مسئولیت نمایش اعلانهای مربوط به تماس بین Telecom و برنامه پیشفرض Dialer تقسیم میشد و این امر باعث ایجاد ناهماهنگی در رفتار میشد. در اندروید ۷.۰، Dialer تمام مسئولیت مدیریت اعلانهای تماس را بر عهده میگیرد.
عملکرد در اندروید ۶.x و پایینتر
در نسخههای قبلی اندروید، مسئولیتهای Telecom و Dialer مطابق جدول زیر تقسیم شده بود:
| عملکرد | توسط مخابرات انجام شد | توسط شمارهگیر انجام میشود |
|---|---|---|
| اعلان تماس ورودی | بله (زنگ، ویبره) | بله (نمایش اعلانها، شناسه تماسگیرنده) |
| ارسال به صندوق صوتی | بله | خیر |
| آهنگ زنگ سفارشی | بله | خیر |
| اعلانهای تماسهای از دست رفته | بله | خیر |
| نشانگر انتظار پیام (صندوق صوتی تماس) | بله (تماس تلفنی) | خیر |
| اعلانهای صوتی تصویری | خیر | بله |
نمونههایی از رفتار متناقض ناشی از این تقسیم مسئولیت شامل موارد زیر است:
- مخابرات مسئول شروع زنگ/ویبراتور بود، اما شمارهگیر مسئول نمایش اعلان تماس ورودی بود. اگر شمارهگیر به کندی شروع به کار کند، میتواند منجر به شروع زنگ چند ثانیه قبل از نمایش اعلان تماس ورودی شود.
- شرکت مخابرات مسئول نمایش اعلانهای تماسهای از دست رفته بود. از آنجایی که ویژگیهای اختصاصی (مانند شناسه تماسگیرنده گوگل) روی این اعلانها کار نمیکنند، این امر میتواند منجر به ناهماهنگی بین اعلانهای مخابرات و رابط کاربری شمارهگیر (مانند گزارش تماس) شود.
عملکرد در اندروید ۷.۰ و بالاتر
پروژه متنباز اندروید (AOSP) Dialer این قابلیت جدید را پیادهسازی میکند. برای جزئیات بیشتر، به مستندات زیر مراجعه کنید:
- اعلانهای تماسهای از دست رفته
Telecom/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java
شمارهگیر/اندروید/شمارهگیر/گزارش تماس/دریافتکنندهی اعلان تماسهای از دست رفته.java
شمارهگیر/اندروید/شمارهگیر/گزارش تماس/اعلان تماس از دست رفته.java - پخش آهنگهای زنگ:
فریمورکها/پایه/تلهکام/جاوا/اندروید/تلهکام/InCallService.java
Telecom/src/com/android/server/telecom/InCallController.java
Dialer/java/com/android/incallui/ringtone/
شمارهگیر/java/com/android/incallui/StatusBarNotifier.java - اعلانهای VVM
فریمورکها/پایه/تلفنی/جاوا/اندروید/تلفنی/TelephonyManager.java
تلفن/src/com/android/phone/PhoneInterfaceManager.java
شمارهگیر/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
سبک اعلان برای تماسها در اندروید ۱۲ یا بالاتر
برای دستگاههایی که اندروید ۱۲ یا بالاتر دارند، برای ارائه یک تجربه کاربری ثابت برای تماسها، توصیه میکنیم برنامهها از سبک اعلان CallStyle برای تماسهای ورودی و جاری استفاده کنند. برای اطلاعات بیشتر، به بخش اعلانهای تماس تلفنی جدید که امکان رتبهبندی اهمیت تماسهای ورودی را فراهم میکنند، مراجعه کنید.
پیادهسازی
ممکن است لازم باشد مجریان دستگاه، اجزای Telecom/Telephony را که APIهای موجود برای استفاده توسط Dialer پیشفرض را در معرض نمایش قرار میدهند، بهروزرسانی کنند.