1 <?xml version="1.0" encoding="utf-8"?> 2 <!-- Copyright (C) 2006 The Android Open Source Project 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 --> 16 17 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 18 package="com.android.dialer" 19 coreApp="true" 20 android:versionCode="30000" 21 android:versionName="3.00.00"> 22 23 <uses-sdk 24 android:minSdkVersion="23" 25 android:targetSdkVersion="23" /> 26 27 <uses-permission android:name="android.permission.CALL_PHONE" /> 28 <uses-permission android:name="android.permission.READ_CONTACTS" /> 29 <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 30 <uses-permission android:name="android.permission.READ_CALL_LOG" /> 31 <uses-permission android:name="android.permission.WRITE_CALL_LOG" /> 32 <uses-permission android:name="android.permission.READ_PROFILE" /> 33 <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> 34 <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 35 <uses-permission android:name="android.permission.GET_ACCOUNTS_PRIVILEGED"/> 36 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 37 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 38 <uses-permission android:name="android.permission.INTERNET" /> 39 <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/> 40 <uses-permission android:name="android.permission.NFC" /> 41 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 42 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 43 <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" /> 44 <uses-permission android:name="android.permission.WAKE_LOCK" /> 45 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 46 <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 47 <uses-permission android:name="android.permission.USE_CREDENTIALS" /> 48 <uses-permission android:name="android.permission.VIBRATE" /> 49 <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> 50 <uses-permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE" /> 51 <uses-permission android:name="com.android.voicemail.permission.ADD_VOICEMAIL" /> 52 <uses-permission android:name="com.android.voicemail.permission.WRITE_VOICEMAIL" /> 53 <uses-permission android:name="com.android.voicemail.permission.READ_VOICEMAIL" /> 54 <uses-permission android:name="android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK" /> 55 <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/> 56 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 57 <uses-permission android:name="android.permission.BROADCAST_STICKY" /> 58 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 59 <!-- This tells the activity manager to not delay any of our activity 60 start requests, even if they happen immediately after the user 61 presses home. --> 62 <uses-permission android:name="android.permission.STOP_APP_SWITCHES" /> 63 64 <application 65 android:name="DialerApplication" 66 android:label="@string/applicationLabel" 67 android:icon="@mipmap/ic_launcher_phone" 68 android:hardwareAccelerated="true" 69 android:supportsRtl="true" 70 android:backupAgent='com.android.dialer.DialerBackupAgent' 71 android:usesCleartextTraffic="false"> 72 73 <meta-data android:name="com.google.android.backup.api_key" 74 android:value="AEdPqrEAAAAIBXgtCEKQ6W0PXVnW-ZVia2KmlV2AxsTw3GjAeQ" /> 75 76 <!-- The entrance point for Phone UI. 77 stateAlwaysHidden is set to suppress keyboard show up on 78 dialpad screen. --> 79 <activity android:name=".DialtactsActivity" 80 android:label="@string/launcherActivityLabel" 81 android:theme="@style/DialtactsActivityTheme" 82 android:launchMode="singleTask" 83 android:clearTaskOnLaunch="true" 84 android:icon="@mipmap/ic_launcher_phone" 85 android:windowSoftInputMode="stateAlwaysHidden|adjustNothing" 86 android:resizeableActivity="true" 87 android:directBootAware="true"> 88 <intent-filter> 89 <action android:name="android.intent.action.DIAL" /> 90 <category android:name="android.intent.category.DEFAULT" /> 91 <category android:name="android.intent.category.BROWSABLE" /> 92 <data android:mimeType="vnd.android.cursor.item/phone" /> 93 <data android:mimeType="vnd.android.cursor.item/person" /> 94 </intent-filter> 95 <intent-filter> 96 <action android:name="android.intent.action.DIAL" /> 97 <category android:name="android.intent.category.DEFAULT" /> 98 <category android:name="android.intent.category.BROWSABLE" /> 99 <data android:scheme="voicemail" /> 100 </intent-filter> 101 <intent-filter> 102 <action android:name="android.intent.action.DIAL" /> 103 <category android:name="android.intent.category.DEFAULT" /> 104 </intent-filter> 105 <intent-filter> 106 <action android:name="android.intent.action.MAIN" /> 107 <category android:name="android.intent.category.DEFAULT" /> 108 <category android:name="android.intent.category.LAUNCHER" /> 109 <category android:name="android.intent.category.BROWSABLE" /> 110 </intent-filter> 111 <intent-filter> 112 <action android:name="android.intent.action.VIEW" /> 113 <action android:name="android.intent.action.DIAL" /> 114 <category android:name="android.intent.category.DEFAULT" /> 115 <category android:name="android.intent.category.BROWSABLE" /> 116 <data android:scheme="tel" /> 117 </intent-filter> 118 <intent-filter> 119 <action android:name="android.intent.action.VIEW" /> 120 <category android:name="android.intent.category.DEFAULT" /> 121 <category android:name="android.intent.category.BROWSABLE" /> 122 <data android:mimeType="vnd.android.cursor.dir/calls" /> 123 </intent-filter> 124 <intent-filter> 125 <action android:name="android.intent.action.CALL_BUTTON" /> 126 <category android:name="android.intent.category.DEFAULT" /> 127 <category android:name="android.intent.category.BROWSABLE" /> 128 </intent-filter> 129 <!-- This was never intended to be public, but is here for backward 130 compatibility. Use Intent.ACTION_DIAL instead. --> 131 <intent-filter> 132 <action android:name="com.android.phone.action.TOUCH_DIALER" /> 133 <category android:name="android.intent.category.DEFAULT" /> 134 <category android:name="android.intent.category.TAB" /> 135 </intent-filter> 136 <intent-filter android:label="@string/callHistoryIconLabel"> 137 <action android:name="com.android.phone.action.RECENT_CALLS" /> 138 <category android:name="android.intent.category.DEFAULT" /> 139 <category android:name="android.intent.category.TAB" /> 140 </intent-filter> 141 <meta-data 142 android:name="com.android.keyguard.layout" 143 android:resource="@layout/keyguard_preview" /> 144 </activity> 145 146 <activity android:name="com.android.dialer.settings.DialerSettingsActivity" 147 android:label="@string/dialer_settings_label" 148 android:parentActivityName="com.android.dialer.DialtactsActivity" 149 android:theme="@style/SettingsStyle" 150 android:exported="false"> 151 </activity> 152 153 <activity android:name="com.android.dialer.filterednumber.BlockedNumbersSettingsActivity" 154 android:label="@string/manage_blocked_numbers_label" 155 android:parentActivityName="com.android.dialer.settings.DialerSettingsActivity" 156 android:theme="@style/ManageBlockedNumbersStyle" 157 android:exported="false"> 158 </activity> 159 160 <activity android:name="com.android.dialer.voicemail.VoicemailArchiveActivity" 161 android:label="@string/voicemail_archive_activity_title" 162 android:theme="@style/DialtactsThemeWithoutActionBarOverlay"> 163 </activity> 164 165 <activity android:name="com.android.dialer.calllog.CallLogActivity" 166 android:label="@string/call_log_activity_title" 167 android:theme="@style/DialtactsThemeWithoutActionBarOverlay" 168 android:icon="@mipmap/ic_launcher_phone"> 169 </activity> 170 171 <activity android:name="com.android.dialer.CallDetailActivity" 172 android:label="@string/callDetailTitle" 173 android:theme="@style/CallDetailActivityTheme" 174 android:icon="@mipmap/ic_launcher_phone"> 175 <intent-filter> 176 <action android:name="android.intent.action.VIEW"/> 177 <category android:name="android.intent.category.DEFAULT"/> 178 <data android:mimeType="vnd.android.cursor.item/calls"/> 179 </intent-filter> 180 </activity> 181 182 <activity android:name="com.android.contacts.common.test.FragmentTestActivity"> 183 <intent-filter> 184 <category android:name="android.intent.category.TEST"/> 185 </intent-filter> 186 </activity> 187 188 <activity android:name="com.android.contacts.common.dialog.CallSubjectDialog" 189 android:theme="@style/Theme.CallSubjectDialogTheme" 190 android:windowSoftInputMode="stateVisible|adjustResize"> 191 <intent-filter> 192 <action android:name="android.intent.action.VIEW"/> 193 </intent-filter> 194 </activity> 195 196 <!-- Backwards compatibility: "Phone" from Gingerbread and earlier --> 197 <activity-alias android:name="DialtactsActivity" 198 android:targetActivity=".DialtactsActivity" 199 android:exported="true" 200 /> 201 202 <!-- Backwards compatibility: "Call log" from Gingerbread and earlier --> 203 <activity-alias android:name="RecentCallsListActivity" 204 android:targetActivity=".DialtactsActivity" 205 android:exported="true" 206 /> 207 208 <!-- Backwards compatibility: "Call log" from ICS --> 209 <activity-alias android:name=".activities.CallLogActivity" 210 android:targetActivity=".DialtactsActivity" 211 android:exported="true" 212 /> 213 214 <!-- Used to filter contacts list by account --> 215 <activity 216 android:name="com.android.contacts.common.list.AccountFilterActivity" 217 android:label="@string/activity_title_contacts_filter" 218 android:theme="@style/ContactListFilterTheme"/> 219 220 <!-- Used to select display and sync groups --> 221 <activity 222 android:name="com.android.contacts.common.list.CustomContactListFilterActivity" 223 android:label="@string/custom_list_filter" 224 android:theme="@style/ContactListFilterTheme"/> 225 226 <activity 227 android:name="com.android.contacts.common.activity.RequestImportVCardPermissionsActivity" 228 android:label="@string/launcherActivityLabel" 229 android:theme="@style/BackgroundOnlyTheme" 230 android:exported="false"/> 231 232 <!-- vCard related --> 233 <activity android:name="com.android.contacts.common.vcard.ImportVCardActivity" 234 android:configChanges="orientation|screenSize|keyboardHidden" 235 android:theme="@style/BackgroundOnlyTheme"> 236 </activity> 237 238 <activity android:name="com.android.contacts.common.vcard.NfcImportVCardActivity" 239 android:configChanges="orientation|screenSize|keyboardHidden" 240 android:theme="@style/BackgroundOnlyTheme"> 241 </activity> 242 243 <activity android:name="com.android.contacts.common.vcard.CancelActivity" 244 android:theme="@style/BackgroundOnlyTheme"/> 245 246 <activity android:name="com.android.contacts.common.vcard.SelectAccountActivity" 247 android:theme="@style/BackgroundOnlyTheme"/> 248 249 <activity android:name="com.android.contacts.common.vcard.ExportVCardActivity" 250 android:theme="@style/BackgroundOnlyTheme"/> 251 252 <activity android:name="com.android.contacts.common.vcard.ShareVCardActivity" 253 android:theme="@style/BackgroundOnlyTheme" /> 254 255 <service 256 android:name="com.android.contacts.common.vcard.VCardService" 257 android:exported="false"/> 258 <!-- end vCard related --> 259 260 <receiver android:name=".calllog.CallLogReceiver"> 261 <intent-filter> 262 <action android:name="android.intent.action.NEW_VOICEMAIL" /> 263 <data 264 android:scheme="content" 265 android:host="com.android.voicemail" 266 android:mimeType="vnd.android.cursor.item/voicemail" 267 /> 268 </intent-filter> 269 <intent-filter android:priority="100"> 270 <action android:name="android.intent.action.BOOT_COMPLETED"/> 271 </intent-filter> 272 </receiver> 273 274 <receiver android:name=".interactions.UndemoteOutgoingCallReceiver"> 275 <intent-filter> 276 <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> 277 </intent-filter> 278 </receiver> 279 280 <service 281 android:name=".calllog.CallLogNotificationsService" 282 android:directBootAware="true" 283 android:exported="false" 284 /> 285 286 <receiver android:name=".calllog.MissedCallNotificationReceiver" 287 android:directBootAware="true"> 288 <intent-filter> 289 <action android:name="android.telecom.action.SHOW_MISSED_CALLS_NOTIFICATION" /> 290 </intent-filter> 291 </receiver> 292 293 <!-- Service to update a contact --> 294 <service 295 android:name=".contact.ContactUpdateService" 296 android:exported="false" /> 297 298 <!-- Broadcast receiver that passively listens to location updates --> 299 <receiver android:name="com.android.contacts.common.location.CountryDetector$LocationChangedReceiver"/> 300 301 <!-- IntentService to update the user's current country --> 302 <service android:name="com.android.contacts.common.location.UpdateCountryService" 303 android:exported="false"/> 304 305 <!-- Main in-call UI activity. This is never launched directly 306 from outside the phone app; instead, it's either launched by 307 the OutgoingCallBroadcaster (for outgoing calls), or as the 308 fullScreenIntent of a notification (for incoming calls.) --> 309 <activity android:name="com.android.incallui.InCallActivity" 310 android:theme="@style/Theme.InCallScreen" 311 android:label="@string/phoneAppLabel" 312 android:excludeFromRecents="true" 313 android:launchMode="singleInstance" 314 android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|keyboardHidden" 315 android:exported="false" 316 android:screenOrientation="nosensor" 317 android:directBootAware="true" 318 android:resizeableActivity="true"> 319 </activity> 320 321 <service android:name="com.android.incallui.InCallServiceImpl" 322 android:permission="android.permission.BIND_INCALL_SERVICE" 323 android:directBootAware="true" > 324 <meta-data android:name="android.telecom.IN_CALL_SERVICE_UI" android:value="true" /> 325 <meta-data android:name="android.telecom.IN_CALL_SERVICE_RINGING" 326 android:value="false"/> 327 <intent-filter> 328 <action android:name="android.telecom.InCallService"/> 329 </intent-filter> 330 </service> 331 332 <!-- BroadcastReceiver for receiving Intents from Notification mechanism. --> 333 <receiver android:name="com.android.incallui.NotificationBroadcastReceiver" 334 android:directBootAware="true" 335 android:exported="false" /> 336 337 <provider 338 android:name=".database.FilteredNumberProvider" 339 android:authorities="com.android.dialer.database.filterednumberprovider" 340 android:exported="false" 341 android:multiprocess="false" 342 /> 343 344 <provider 345 android:name="android.support.v4.content.FileProvider" 346 android:authorities="@string/contacts_file_provider_authority" 347 android:grantUriPermissions="true" 348 android:exported="false"> 349 <meta-data 350 android:name="android.support.FILE_PROVIDER_PATHS" 351 android:resource="@xml/file_paths" /> 352 </provider> 353 354 <provider 355 android:name=".database.VoicemailArchiveProvider" 356 android:authorities="com.android.dialer.database.voicemailarchiveprovider" 357 android:exported="false" 358 android:multiprocess="false" 359 /> 360 </application> 361 </manifest> 362