| <?xml version="1.0" encoding="utf-8"?> |
| <!-- |
| Copyright (C) 2018 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. |
| --> |
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
| xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" |
| xmlns:tools="http://schemas.android.com/tools" |
| package="com.android.systemui" |
| android:sharedUserId="android.uid.systemui" |
| coreApp="true"> |
| <!-- This permission is required to monitor car power state. --> |
| <uses-permission android:name="android.car.permission.CAR_POWER" /> |
| <!-- This permission is required to get the trusted device list of a user. --> |
| <uses-permission android:name="android.car.permission.CAR_ENROLL_TRUST"/> |
| <!-- This permission is required to use EVS. --> |
| <uses-permission android:name="android.car.permission.CONTROL_CAR_EVS_ACTIVITY" /> |
| <uses-permission android:name="android.car.permission.MONITOR_CAR_EVS_STATUS" /> |
| <!-- This permission is required to use ClusterHomeManager. --> |
| <uses-permission android:name="android.car.permission.CAR_INSTRUMENT_CLUSTER_CONTROL" /> |
| <!-- This permission is required to use CarOccupantZoneManager. --> |
| <uses-permission android:name="android.car.permission.CAR_CONTROL_AUDIO_SETTINGS" /> |
| <!-- This permission is required to get bluetooth broadcast. --> |
| <uses-permission android:name="android.permission.BLUETOOTH" /> |
| <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> |
| <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> |
| <uses-permission android:name="android.permission.BLUETOOTH_SCAN" /> |
| <!-- This permission is required to access app information from other users. --> |
| <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/> |
| <!-- This permission is required to check the foreground user id. --> |
| <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" /> |
| <!-- System permission to use internal system windows --> |
| <uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW"/> |
| <!-- This permission is required to get the tasks from CarActivityService. --> |
| <uses-permission android:name="android.permission.MANAGE_ACTIVITY_TASKS" /> |
| <!-- These permissions are required to implement icons based on role holders. --> |
| <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS"/> |
| <uses-permission android:name="android.permission.OBSERVE_ROLE_HOLDERS"/> |
| <!-- This permission is required to observe microphone sensor privacy changes. --> |
| <uses-permission android:name="android.permission.OBSERVE_SENSOR_PRIVACY" /> |
| <!-- Permission for read-only access to phone state, namely the status of any ongoing calls --> |
| <uses-permission android:name="android.permission.READ_PHONE_STATE"/> |
| <!-- This permission is required to register the car system ui proxy --> |
| <uses-permission android:name="android.car.permission.REGISTER_CAR_SYSTEM_UI_PROXY"/> |
| <!-- This permission is required to listen to the keyguard state --> |
| <uses-permission android:name="android.permission.SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE" /> |
| <!-- This permission is required to create a CarTaskViewController --> |
| <uses-permission android:name="android.car.permission.MANAGE_CAR_SYSTEM_UI"/> |
| <!-- use for ActivityBlockingActivity to tell whether it's on driver or passenger display --> |
| <uses-permission android:name="android.car.permission.ACCESS_PRIVATE_DISPLAY_ID"/> |
| <!-- use for querying DisplayCompat packages --> |
| <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/> |
| <uses-permission android:name="android.car.permission.MANAGE_DISPLAY_COMPATIBILITY"/> |
| <!-- Permission to allow receiving broadcast events for the dock --> |
| <uses-permission android:name="com.android.car.docklib.permission.BROADCAST_RECEIVER" /> |
| <!-- Permissions for the InCallController to bind the InCallService as non-ui --> |
| <uses-permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE"/> |
| <uses-permission android:name="android.permission.MANAGE_ONGOING_CALLS"/> |
| <!-- System permission to control media playback of the active session --> |
| <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"/> |
| |
| <application |
| tools:replace="android:name,android:appComponentFactory" |
| android:name=".CarSystemUIApplication" |
| android:appComponentFactory="com.android.systemui.CarSystemUIAppComponentFactory"> |
| <activity |
| android:name=".car.wm.activity.ActivityBlockingActivity" |
| android:documentLaunchMode="always" |
| android:excludeFromRecents="true" |
| android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation" |
| android:exported="false" |
| android:showForAllUsers="true" |
| android:theme="@style/Theme.NoTitleBar.NoSplash"> |
| <intent-filter> |
| <action android:name="android.intent.action.MAIN"/> |
| </intent-filter> |
| </activity> |
| <activity |
| android:name=".car.wm.activity.ContinuousBlankActivity" |
| android:excludeFromRecents="true" |
| android:theme="@android:style/Theme.NoTitleBar.Fullscreen" |
| android:exported="false" |
| android:launchMode="singleTask"> |
| </activity> |
| <activity |
| android:name=".car.wm.activity.LaunchOnPrivateDisplayRouterActivity" |
| android:excludeFromRecents="true" |
| android:exported="true" |
| android:label="LaunchOnPrivateDisplayRouterActivity" |
| android:launchMode="singleInstance" |
| android:noHistory="true" |
| android:permission="android.car.permission.ACCESS_PRIVATE_DISPLAY_ID" |
| android:theme="@android:style/Theme.Translucent.NoTitleBar"/> |
| <activity |
| android:name=".car.userpicker.UserPickerActivity" |
| android:label="UserPicker" |
| android:icon="@drawable/ic_user_picker" |
| android:launchMode="singleInstancePerTask" |
| android:documentLaunchMode="intoExisting" |
| android:showForAllUsers="true" |
| android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|locale|density|layoutDirection" |
| android:exported="true" |
| android:excludeFromRecents="true" |
| android:directBootAware="true" |
| android:enableOnBackInvokedCallback="true" |
| android:theme="@style/Theme.UserPicker"> |
| <intent-filter> |
| <action android:name="android.intent.action.MAIN" /> |
| </intent-filter> |
| <meta-data android:name="distractionOptimized" android:value="true"/> |
| </activity> |
| <!-- The service needs to be directBootAware so that it can reflect the correct call state |
| when the system boots up. --> |
| <service android:name=".car.telecom.InCallServiceImpl" |
| android:directBootAware="true" |
| android:permission="android.permission.BIND_INCALL_SERVICE" |
| android:exported="true" |
| android:singleUser="true" |
| android:enabled="@bool/config_enableAppBlockingActivities"> |
| <!-- ABA does not display the in-call UI. This is handled by the |
| Dialer application.--> |
| <meta-data android:name="android.telecom.IN_CALL_SERVICE_UI" android:value="false"/> |
| <meta-data android:name="android.telecom.IN_CALL_SERVICE_CAR_MODE_UI" |
| android:value="false"/> |
| <meta-data android:name="android.telecom.INCLUDE_SELF_MANAGED_CALLS" |
| android:value="true"/> |
| <intent-filter> |
| <action android:name="android.telecom.InCallService"/> |
| </intent-filter> |
| </service> |
| </application> |
| </manifest> |