1<?xml version="1.0" encoding="utf-8"?> 2<!-- 3 Copyright (C) 2017 The Android Open Source Project 4 5 Licensed under the Apache License, Version 2.0 (the "License"); 6 you may not use this file except in compliance with the License. 7 You may obtain a copy of the License at 8 9 http://www.apache.org/licenses/LICENSE-2.0 10 11 Unless required by applicable law or agreed to in writing, software 12 distributed under the License is distributed on an "AS IS" BASIS, 13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 See the License for the specific language governing permissions and 15 limitations under the License. 16 --> 17 18<manifest xmlns:android="http://schemas.android.com/apk/res/android" 19 package="com.android.car.carlauncher"> 20 21 <!-- System permission to access the CarProjectionManager for projection status--> 22 <uses-permission android:name="android.car.permission.ACCESS_CAR_PROJECTION_STATUS"/> 23 <!-- Permission to assign Activity to TDA --> 24 <uses-permission android:name="android.car.permission.CONTROL_CAR_APP_LAUNCH"/> 25 <!-- System permission to host maps activity --> 26 <uses-permission android:name="android.permission.ACTIVITY_EMBEDDING"/> 27 <!-- Needed to change component enabled state when user opens disabled apps. --> 28 <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/> 29 <!-- Permission to open recent tasks and to allow drag surface control to be transferred from DragEvent. --> 30 <uses-permission android:name="android.permission.START_TASKS_FROM_RECENTS"/> 31 <!-- Permission for the InCallController to bind the InCallService --> 32 <uses-permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE"/> 33 <!-- System permission to send events to hosted maps activity --> 34 <uses-permission android:name="android.permission.INJECT_EVENTS"/> 35 <!-- System permission to use internal system windows --> 36 <uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW"/> 37 <!-- System permission to register TaskOrganizer --> 38 <uses-permission android:name="android.permission.MANAGE_ACTIVITY_TASKS"/> 39 <!-- System permission to bring hosted maps activity to front on main display --> 40 <uses-permission android:name="android.permission.REORDER_TASKS"/> 41 <!-- System permission to remove a task --> 42 <uses-permission android:name="android.permission.REMOVE_TASKS"/> 43 <!-- System permission to call AM.getRunningAppProcesses(). 44 TODO: change this to REAL_GET_TASKS. --> 45 <uses-permission android:name="android.permission.GET_TASKS"/> 46 <!-- System permission to query users on device --> 47 <uses-permission android:name="android.permission.MANAGE_USERS"/> 48 <!-- System permission to control media playback of the active session --> 49 <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"/> 50 <!-- System permission to get app usage data --> 51 <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/> 52 <!-- System permission to query all installed packages --> 53 <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/> 54 <!-- Permission to read contacts data. Needed to display contact name on dialer card --> 55 <uses-permission android:name="android.permission.READ_CONTACTS"/> 56 <!-- Permission for read-only access to phone state, namely the status of any ongoing calls --> 57 <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 58 <!-- Allows input events to be monitored by CarDisplayAreaTouchHandler. --> 59 <uses-permission android:name="android.permission.MONITOR_INPUT"/> 60 <!-- Needed to use TYPE_APPLICATION_OVERLAY window type to display title bar. --> 61 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 62 <!-- Permission to start a voice interaction service. --> 63 <uses-permission android:name="android.permission.ACCESS_VOICE_INTERACTION_SERVICE"/> 64 <!-- Permission to use InteractionJankMonitor. --> 65 <uses-permission android:name="android.permission.READ_DEVICE_CONFIG"/> 66 <!-- Permission to send notifications --> 67 <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> 68 <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"/> 69 <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/> 70 <!-- Permission to create RemoteCarTaskView --> 71 <uses-permission android:name="android.car.permission.MANAGE_CAR_SYSTEM_UI"/> 72 <!-- Permission to read outside temperature sensor --> 73 <uses-permission android:name="android.car.permission.CAR_EXTERIOR_ENVIRONMENT"/> 74 <!-- Permission to read hvac properties --> 75 <uses-permission android:name="android.car.permission.CONTROL_CAR_CLIMATE"/> 76 <!-- Permission to read navigation state --> 77 <uses-permission android:name="android.car.permission.CAR_MONITOR_CLUSTER_NAVIGATION_STATE"/> 78 <!-- Permission to read notifications --> 79 <uses-permission android:name="android.permission.ACCESS_NOTIFICATIONS"/> 80 81 <!-- To connect to media browser services in other apps, media browser clients 82 that target Android 11 need to add the following in their manifest --> 83 <queries> 84 <intent> 85 <action android:name="android.media.browse.MediaBrowserService"/> 86 </intent> 87 </queries> 88 89 <application 90 android:icon="@drawable/ic_launcher_home" 91 android:label="@string/app_title" 92 android:theme="@style/Theme.Launcher" 93 android:supportsRtl="true"> 94 <activity 95 android:name=".CarLauncher" 96 android:configChanges="uiMode|mcc|mnc" 97 android:launchMode="singleTask" 98 android:clearTaskOnLaunch="true" 99 android:stateNotNeeded="true" 100 android:resumeWhilePausing="true" 101 android:exported="true" 102 android:windowSoftInputMode="adjustPan"> 103 <meta-data android:name="distractionOptimized" android:value="true"/> 104 <intent-filter> 105 <action android:name="android.intent.action.MAIN"/> 106 <category android:name="android.intent.category.HOME"/> 107 <category android:name="android.intent.category.SECONDARY_HOME" /> 108 <category android:name="android.intent.category.DEFAULT"/> 109 <category android:name="android.intent.category.LAUNCHER_APP"/> 110 </intent-filter> 111 </activity> 112 <activity 113 android:name=".ControlBarActivity" 114 android:launchMode="singleInstance" 115 android:clearTaskOnLaunch="true" 116 android:stateNotNeeded="true" 117 android:resumeWhilePausing="true" 118 android:exported="true" 119 android:windowSoftInputMode="adjustPan" 120 android:excludeFromRecents="true"> 121 <meta-data android:name="distractionOptimized" android:value="true"/> 122 <intent-filter> 123 <category android:name="android.intent.category.DEFAULT"/> 124 </intent-filter> 125 </activity> 126 <service 127 android:name=".recents.CarQuickStepService" 128 android:permission="android.permission.STATUS_BAR_SERVICE" 129 android:directBootAware="true" 130 android:exported="true"> 131 <intent-filter> 132 <action android:name="android.intent.action.QUICKSTEP_SERVICE"/> 133 </intent-filter> 134 </service> 135 <activity 136 android:name=".recents.CarRecentsActivity" 137 android:excludeFromRecents="true" 138 android:launchMode="singleInstance" 139 android:stateNotNeeded="true" 140 android:exported="true" 141 android:taskAffinity="" 142 android:resumeWhilePausing="true"> 143 <meta-data android:name="distractionOptimized" android:value="true"/> 144 <intent-filter> 145 <action android:name="com.android.car.carlauncher.recents.OPEN_RECENT_TASK_ACTION"/> 146 <category android:name="android.intent.category.DEFAULT"/> 147 </intent-filter> 148 </activity> 149 <activity android:name="com.android.car.carlauncher.calmmode.CalmModeActivity" 150 android:excludeFromRecents="true" 151 android:exported="true" 152 android:launchMode="singleInstance" 153 android:theme="@style/Theme.CalmMode"> 154 <intent-filter> 155 <action android:name="com.android.settings.action.EXTRA_SETTINGS"/> 156 <category android:name="android.intent.category.DEFAULT"/> 157 </intent-filter> 158 <meta-data android:name="distractionOptimized" android:value="true"/> 159 <meta-data 160 android:name="com.android.settings.title" 161 android:resource="@string/calm_mode_title"/> 162 <meta-data 163 android:name="com.android.settings.category" 164 android:value="com.android.settings.category.ia.display"/> 165 </activity> 166 <activity android:name="com.android.car.carlauncher.homescreen.MapTosActivity" 167 android:taskAffinity="" 168 android:launchMode="singleTask" 169 android:allowEmbedded="true" 170 android:alwaysRetainTaskState="true" 171 android:screenOrientation="user" 172 android:resizeableActivity="true" 173 android:exported="true"> 174 <meta-data android:name="distractionOptimized" android:value="true"/> 175 </activity> 176 177 <provider android:name=".calmmode.CalmModeQCProvider" 178 android:authorities="com.android.car.carlauncher.calmmode" 179 android:grantUriPermissions="true" 180 android:exported="true"> 181 </provider> 182 183 <!-- The service needs to be directBootAware so that it can reflect the correct call state 184 when the system boots up. --> 185 <service android:name=".homescreen.audio.telecom.InCallServiceImpl" 186 android:directBootAware="true" 187 android:permission="android.permission.BIND_INCALL_SERVICE" 188 android:exported="true"> 189 <!-- The home app does not display the in-call UI. This is handled by the 190 Dialer application.--> 191 <meta-data android:name="android.telecom.IN_CALL_SERVICE_UI" android:value="false"/> 192 <meta-data android:name="android.telecom.IN_CALL_SERVICE_CAR_MODE_UI" 193 android:value="false"/> 194 <meta-data android:name="android.telecom.INCLUDE_SELF_MANAGED_CALLS" 195 android:value="true"/> 196 <intent-filter> 197 <action android:name="android.telecom.InCallService"/> 198 </intent-filter> 199 </service> 200 </application> 201</manifest> 202