blob: 2e99f1a4c45b86b4d75cfa3b1e908e52e6499a5b [file] [log] [blame]
<html devsite><head>
<title>来电通知</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
<body>
<!--
Copyright 2017 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<p>Android 7.0 将与来电通知相关的功能从 Android 平台中的通讯系统 (Telecom) 服务移至拨号器应用中。而在以前,显示与来电相关通知的职责在通讯系统和默认的拨号器应用之间是分开的,这就导致了行为不一致。在 Android 7.0 中,拨号器承担了处理来电通知的所有职责。</p>
<h2 id="android_6">Android 6.x 及更早版本中的行为</h2>
<p>在之前的 Android 版本中,通讯系统和拨号器分别承担以下职责:</p>
<table>
<tbody><tr>
<th>功能</th>
<th>由通讯系统执行</th>
<th>由拨号器执行</th>
</tr>
<tr>
<td>来电通知</td>
<td>是(响铃、振动)</td>
<td>是(通知显示、来电显示)</td>
</tr>
<tr>
<td>发送至语音信箱</td>
<td></td>
<td></td>
</tr>
<tr>
<td>自定义铃声</td>
<td></td>
<td></td>
</tr>
<tr>
<td>未接电话通知</td>
<td></td>
<td></td>
</tr>
<tr>
<td>消息等待指示(呼叫语音信箱)</td>
<td>是(电话)</td>
<td></td>
</tr>
<tr>
<td>可视语音邮件通知</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>因这种职责分担导致的不一致行为的示例包括:</p>
<ul>
<li>通讯系统负责启动振铃器/振动器,但拨号器负责显示来电通知。如果拨号器启动缓慢,则可能导致响铃数秒后才显示来电通知。</li>
<li>通讯系统负责显示未接电话通知。由于专有功能(如 Google 来电显示)不适用于这些通知,因此可能会导致通讯系统通知与拨号器界面(如通话记录)不一致。</li>
</ul>
<h2 id="android_7">Android 7.0 及更高版本中的行为</h2>
<p>Android 开放源代码项目 (AOSP) 拨号器会实施新的功能。有关详情,请参阅以下文档:</p>
<ul>
<li>未接电话通知<br />
<a href="https://android.googlesource.com/platform/packages/services/Telecomm/+/master/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java">Telecom/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java</a><br />
<a href="https://android.googlesource.com/platform/packages/apps/Dialer/+/master/java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java">Dialer/android/dialer/calllog/MissedCallNotificationReceiver.java</a><br />
<a href="https://android.googlesource.com/platform/packages/apps/Dialer/+/master/java/com/android/dialer/app/calllog/MissedCallNotifier.java">Dialer/android/dialer/calllog/MissedCallNotifier.java</a></li>
<li>播放铃声<br />
<a href="https://android.googlesource.com/platform/frameworks/base/+/master/telecomm/java/android/telecom/InCallService.java">frameworks/base/telecomm/java/android/telecom/InCallService.java</a><br />
<a href="https://android.googlesource.com/platform/packages/services/Telecomm/+/master/src/com/android/server/telecom/InCallController.java">Telecom/src/com/android/server/telecom/InCallController.java</a><br />
<a href="https://android.googlesource.com/platform/packages/apps/Dialer/+/master/java/com/android/incallui/ringtone/">Dialer/java/com/android/incallui/ringtone/</a><br />
<a href="https://android.googlesource.com/platform/packages/apps/Dialer/+/master/java/com/android/incallui/StatusBarNotifier.java">Dialer/java/com/android/incallui/StatusBarNotifier.java</a></li>
<li>VVM 通知<br />
<a href="https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/TelephonyManager.java">frameworks/base/telephony/java/android/telephony/TelephonyManager.java</a><br />
<a href="https://android.googlesource.com/platform/packages/services/Telephony/+/master/src/com/android/phone/PhoneInterfaceManager.java">Telephony/src/com/android/phone/PhoneInterfaceManager.java</a><br />
<a href="https://android.googlesource.com/platform/packages/apps/Dialer/+/nougat-release/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java">Dialer/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java</a></li>
</ul>
<h2 id="implement">实现</h2>
<p>设备实现人员可能需要更新通讯系统/电话组件,这些组件表明可供默认拨号器使用的 API。</p>
</body></html>