Home | History | Annotate | Download | only in Telecomm
      1 <?xml version="1.0" encoding="utf-8"?>
      2 <!-- Copyright (C) 2007 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         xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
     19         package="com.android.server.telecom"
     20         coreApp="true"
     21         android:sharedUserId="android.uid.system">
     22 
     23     <protected-broadcast android:name="android.intent.action.SHOW_MISSED_CALLS_NOTIFICATION" />
     24 
     25     <!-- Prevents the activity manager from delaying any activity-start
     26          requests by this package, including requests immediately after
     27          the user presses "home". -->
     28     <uses-permission android:name="android.permission.BIND_CONNECTION_SERVICE" />
     29     <uses-permission android:name="android.permission.BIND_INCALL_SERVICE" />
     30     <uses-permission android:name="android.permission.BLUETOOTH" />
     31     <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
     32     <uses-permission android:name="android.permission.BROADCAST_CALLLOG_INFO" />
     33     <uses-permission android:name="android.permission.BROADCAST_PHONE_ACCOUNT_REGISTRATION" />
     34     <uses-permission android:name="android.permission.CALL_PRIVILEGED" />
     35     <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
     36     <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
     37     <uses-permission android:name="android.permission.MANAGE_USERS" />
     38     <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
     39     <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
     40     <uses-permission android:name="android.permission.READ_CALL_LOG" />
     41     <uses-permission android:name="android.permission.STOP_APP_SWITCHES" />
     42     <uses-permission android:name="android.permission.VIBRATE" />
     43     <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
     44     <uses-permission android:name="android.permission.READ_BLOCKED_NUMBERS" />
     45     <uses-permission android:name="android.permission.WRITE_BLOCKED_NUMBERS" />
     46     <uses-permission android:name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" />
     47 
     48     <permission
     49             android:name="android.permission.BROADCAST_CALLLOG_INFO"
     50             android:label="Broadcast the call type/duration information"
     51             android:protectionLevel="signature|system"/>
     52 
     53     <permission
     54             android:name="android.permission.PROCESS_CALLLOG_INFO"
     55             android:label="Register to handle the broadcasted call type/duration information"
     56             android:protectionLevel="signature|system"/>
     57 
     58     <permission
     59             android:name="android.permission.BROADCAST_PHONE_ACCOUNT_REGISTRATION"
     60             android:label="Broadcast phone account registration"
     61             android:protectionLevel="signature|system"/>
     62 
     63     <permission
     64             android:name="android.permission.PROCESS_PHONE_ACCOUNT_REGISTRATION"
     65             android:label="Process phone account registration"
     66             android:protectionLevel="signature|system"/>
     67 
     68     <application android:label="@string/telecommAppLabel"
     69             android:icon="@mipmap/ic_launcher_phone"
     70             android:allowBackup="false"
     71             android:supportsRtl="true"
     72             android:process="system"
     73             android:usesCleartextTraffic="false"
     74             android:defaultToDeviceProtectedStorage="true"
     75             android:directBootAware="true">
     76 
     77         <!-- CALL vs CALL_PRIVILEGED vs CALL_EMERGENCY
     78              We have three different intents through which a call can be initiated each with its
     79              own behavior.
     80              1) CALL - Expected from any third party app with CALL_PHONE permission. Through this
     81              intent, an app can call any number except emergency numbers.
     82              2) CALL_PRIVILEGED - Expected from the dialer app and requires CALL_PRIVILEGED
     83              permission, which is only held by the system dialer and the emergency dialer at the
     84              time of this writing. Through this intent, an app can call any number including
     85              emergency numbers.
     86              3) CALL_EMERGENCY - Expected from the emergency dialer app and requires CALL_PRIVILEGED
     87              permission. Through this intent, an app can call *only* emergency numbers. -->
     88 
     89         <!-- Activity that displays UI for managing blocked numbers. -->
     90         <activity android:name=".settings.BlockedNumbersActivity"
     91                   android:label="@string/blocked_numbers"
     92                   android:configChanges="orientation|screenSize|keyboardHidden"
     93                   android:theme="@style/Theme.Telecom.BlockedNumbers"
     94                   android:process=":ui"
     95                   android:exported="true">
     96             <intent-filter>
     97                 <action android:name="android.telecom.action.MANAGE_BLOCKED_NUMBERS" />
     98                 <category android:name="android.intent.category.DEFAULT" />
     99             </intent-filter>
    100         </activity>
    101         <!-- Activity that starts the outgoing call process by listening to CALL intent which
    102              contain contact information in the intent's data. CallActivity handles any data
    103              URL with the schemes "tel", "sip", and "voicemail". It also handles URLs linked to
    104              contacts provider entries. Any data not fitting the schema described is ignored. -->
    105         <activity android:name=".components.UserCallActivity"
    106                 android:label="@string/userCallActivityLabel"
    107                 android:theme="@style/Theme.Telecomm.Transparent"
    108                 android:permission="android.permission.CALL_PHONE"
    109                 android:excludeFromRecents="true"
    110                 android:process=":ui">
    111             <!-- CALL action intent filters for the various ways of initiating an outgoing call. -->
    112             <intent-filter>
    113                 <action android:name="android.intent.action.CALL" />
    114                 <category android:name="android.intent.category.DEFAULT" />
    115                 <data android:scheme="tel" />
    116             </intent-filter>
    117             <!-- Specify an icon for SIP calls so that quick contacts widget shows a special SIP
    118                  icon for calls to SIP addresses. -->
    119             <intent-filter android:icon="@drawable/ic_launcher_sip_call">
    120                 <action android:name="android.intent.action.CALL" />
    121                 <category android:name="android.intent.category.DEFAULT" />
    122                 <data android:scheme="sip" />
    123             </intent-filter>
    124             <intent-filter>
    125                 <action android:name="android.intent.action.CALL" />
    126                 <category android:name="android.intent.category.DEFAULT" />
    127                 <data android:scheme="voicemail" />
    128             </intent-filter>
    129             <!-- Omit default category below so that all Intents sent to this filter must be
    130                  explicit. -->
    131             <intent-filter>
    132                 <action android:name="android.intent.action.CALL" />
    133                 <data android:mimeType="vnd.android.cursor.item/phone" />
    134                 <data android:mimeType="vnd.android.cursor.item/phone_v2" />
    135                 <data android:mimeType="vnd.android.cursor.item/person" />
    136             </intent-filter>
    137         </activity>
    138 
    139         <!-- Works like CallActivity with CALL_PRIVILEGED instead of CALL intent.
    140              CALL_PRIVILEGED allows calls to emergency numbers unlike CALL which disallows it.
    141              Intent-sender must have the CALL_PRIVILEGED permission or the broadcast will not be
    142              processed. High priority of 1000 is used in all intent filters to prevent anything but
    143              the system from processing this intent (b/8871505). -->
    144         <activity-alias android:name="PrivilegedCallActivity"
    145                 android:targetActivity=".components.UserCallActivity"
    146                 android:permission="android.permission.CALL_PRIVILEGED"
    147                 android:process=":ui">
    148             <intent-filter android:priority="1000">
    149                 <action android:name="android.intent.action.CALL_PRIVILEGED" />
    150                 <category android:name="android.intent.category.DEFAULT" />
    151                 <data android:scheme="tel" />
    152             </intent-filter>
    153             <intent-filter android:priority="1000"
    154                     android:icon="@drawable/ic_launcher_sip_call">
    155                 <action android:name="android.intent.action.CALL_PRIVILEGED" />
    156                 <category android:name="android.intent.category.DEFAULT" />
    157                 <data android:scheme="sip" />
    158             </intent-filter>
    159             <intent-filter android:priority="1000">
    160                 <action android:name="android.intent.action.CALL_PRIVILEGED" />
    161                 <category android:name="android.intent.category.DEFAULT" />
    162                 <data android:scheme="voicemail" />
    163             </intent-filter>
    164             <intent-filter android:priority="1000">
    165                 <action android:name="android.intent.action.CALL_PRIVILEGED" />
    166                 <data android:mimeType="vnd.android.cursor.item/phone" />
    167                 <data android:mimeType="vnd.android.cursor.item/phone_v2" />
    168                 <data android:mimeType="vnd.android.cursor.item/person" />
    169             </intent-filter>
    170         </activity-alias>
    171 
    172         <!-- Works like CallActivity with CALL_EMERGENCY instead of CALL intent.
    173              CALL_EMERGENCY allows calls *only* to emergency numbers. Intent-sender must have the
    174              CALL_PRIVILEGED permission or the broadcast will not be processed. High priority of
    175              1000 is used in all intent filters to prevent anything but the system from processing
    176              this intent (b/8871505). -->
    177         <!-- TODO: Is there really a notion of an emergency SIP number? If not, can
    178              that scheme be removed from this activity? -->
    179         <activity-alias android:name="EmergencyCallActivity"
    180                 android:targetActivity=".components.UserCallActivity"
    181                 android:permission="android.permission.CALL_PRIVILEGED"
    182                 android:process=":ui">
    183             <intent-filter android:priority="1000">
    184                 <action android:name="android.intent.action.CALL_EMERGENCY" />
    185                 <category android:name="android.intent.category.DEFAULT" />
    186                 <data android:scheme="tel" />
    187             </intent-filter>
    188             <intent-filter android:priority="1000"
    189                     android:icon="@drawable/ic_launcher_sip_call">
    190                 <action android:name="android.intent.action.CALL_EMERGENCY" />
    191                 <category android:name="android.intent.category.DEFAULT" />
    192                 <data android:scheme="sip" />
    193             </intent-filter>
    194             <intent-filter android:priority="1000">
    195                 <action android:name="android.intent.action.CALL_EMERGENCY" />
    196                 <category android:name="android.intent.category.DEFAULT" />
    197                 <data android:scheme="voicemail" />
    198             </intent-filter>
    199             <intent-filter android:priority="1000">
    200                 <action android:name="android.intent.action.CALL_EMERGENCY" />
    201                 <data android:mimeType="vnd.android.cursor.item/phone" />
    202                 <data android:mimeType="vnd.android.cursor.item/phone_v2" />
    203                 <data android:mimeType="vnd.android.cursor.item/person" />
    204             </intent-filter>
    205         </activity-alias>
    206 
    207         <receiver android:name=".components.TelecomBroadcastReceiver" android:exported="false"
    208                 android:process="system">
    209             <intent-filter>
    210                 <action android:name="com.android.server.telecom.ACTION_CLEAR_MISSED_CALLS" />
    211                 <action android:name="com.android.server.telecom.ACTION_CALL_BACK_FROM_NOTIFICATION" />
    212                 <action android:name="com.android.server.telecom.ACTION_SEND_SMS_FROM_NOTIFICATION" />
    213                 <action android:name="com.android.server.telecom.ACTION_ANSWER_FROM_NOTIFICATION" />
    214                 <action android:name="com.android.server.telecom.ACTION_REJECT_FROM_NOTIFICATION" />
    215                 <action android:name="com.android.server.telecom.PROCEED_WITH_CALL" />
    216                 <action android:name="com.android.server.telecom.CANCEL_CALL" />
    217             </intent-filter>
    218         </receiver>
    219 
    220         <receiver android:name=".components.PhoneAccountBroadcastReceiver"
    221                 android:process="system">
    222             <intent-filter>
    223                 <action android:name="android.intent.action.PACKAGE_FULLY_REMOVED" />
    224                 <data android:scheme="package" />
    225             </intent-filter>
    226         </receiver>
    227 
    228         <activity android:name=".RespondViaSmsSettings"
    229                   android:label="@string/respond_via_sms_setting_title"
    230                   android:configChanges="orientation|screenSize|keyboardHidden"
    231                   android:theme="@style/Theme.Telecom.DialerSettings"
    232                   android:process=":ui">
    233             <intent-filter>
    234                 <action android:name="android.intent.action.MAIN" />
    235                 <action android:name="android.telecom.action.SHOW_RESPOND_VIA_SMS_SETTINGS" />
    236                 <category android:name="android.intent.category.DEFAULT" />
    237             </intent-filter>
    238         </activity>
    239 
    240         <activity android:name=".settings.EnableAccountPreferenceActivity"
    241                   android:label="@string/enable_account_preference_title"
    242                   android:configChanges="orientation|screenSize|keyboardHidden"
    243                   android:theme="@style/Theme.Telecom.DialerSettings"
    244                   android:process=":ui">
    245             <intent-filter>
    246                 <action android:name="android.intent.action.MAIN" />
    247                 <category android:name="android.intent.category.DEFAULT" />
    248             </intent-filter>
    249         </activity>
    250 
    251         <activity android:name=".components.ErrorDialogActivity"
    252                 android:configChanges="orientation|screenSize|keyboardHidden"
    253                 android:excludeFromRecents="true"
    254                 android:launchMode="singleInstance"
    255                 android:theme="@style/Theme.Telecomm.Transparent"
    256                 android:process=":ui">
    257         </activity>
    258 
    259         <activity android:name=".ui.ConfirmCallDialogActivity"
    260                 android:configChanges="orientation|screenSize|keyboardHidden"
    261                 android:excludeFromRecents="true"
    262                 android:launchMode="singleInstance"
    263                 android:theme="@style/Theme.Telecomm.Transparent"
    264                 android:process=":ui">
    265         </activity>
    266 
    267         <activity android:name=".components.ChangeDefaultDialerDialog"
    268                   android:label="@string/change_default_dialer_dialog_title"
    269                   android:excludeFromRecents="true"
    270                   android:theme="@*android:style/Theme.Material.Light.Dialog.Alert"
    271                   android:priority="1000"
    272                   android:process=":ui" >
    273             <intent-filter>
    274                 <action android:name="android.telecom.action.CHANGE_DEFAULT_DIALER" />
    275                 <category android:name="android.intent.category.DEFAULT" />
    276             </intent-filter>
    277         </activity>
    278 
    279         <receiver android:name=".components.PrimaryCallReceiver"
    280                 android:exported="true"
    281                 android:permission="android.permission.MODIFY_PHONE_STATE"
    282                 android:process="system">
    283         </receiver>
    284 
    285         <service android:name=".components.BluetoothPhoneService"
    286                 android:singleUser="true"
    287                 android:process="system">
    288             <intent-filter>
    289                 <action android:name="android.bluetooth.IBluetoothHeadsetPhone" />
    290             </intent-filter>
    291         </service>
    292 
    293         <service android:name=".components.TelecomService"
    294                 android:singleUser="true"
    295                 android:process="system">
    296             <intent-filter>
    297                 <action android:name="android.telecom.ITelecomService" />
    298             </intent-filter>
    299         </service>
    300 
    301     </application>
    302 </manifest>
    303