1<?xml version="1.0" encoding="utf-8"?>
2<!--
3  Copyright (C) 2020 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.messenger"
20    android:versionCode="10000"
21    android:versionName="1.0.0">
22
23    <application
24        android:name="com.android.car.messenger.impl.CarMessengerApp"
25        android:icon="@drawable/ic_launcher_icon"
26        android:label="@string/app_name"
27        android:screenOrientation="landscape"
28        android:supportsRtl="true"
29        android:theme="@style/Theme.CarUi.WithToolbar">
30
31        <activity
32            android:name=".core.ui.launcher.MessageLauncherActivity"
33            android:exported="true"
34            android:screenOrientation="landscape"
35            android:launchMode="singleTask">
36            <intent-filter>
37                <action android:name="android.intent.action.MAIN" />
38                <category android:name="android.intent.category.LAUNCHER" />
39            </intent-filter>
40
41            <intent-filter>
42                <action android:name="android.intent.action.MAIN" />
43                <category android:name="android.intent.category.APP_MESSAGING" />
44            </intent-filter>
45            <intent-filter>
46                <action android:name="android.intent.action.VIEW" />
47                <action android:name="android.intent.action.SENDTO" />
48
49                <category android:name="android.intent.category.DEFAULT" />
50                <category android:name="android.intent.category.BROWSABLE" />
51
52                <data android:scheme="sms" />
53                <data android:scheme="smsto" />
54            </intent-filter>
55            <intent-filter>
56                <action android:name="android.intent.action.VIEW" />
57                <action android:name="android.intent.action.SENDTO" />
58
59                <category android:name="android.intent.category.DEFAULT" />
60                <category android:name="android.intent.category.BROWSABLE" />
61
62                <data android:scheme="mms" />
63                <data android:scheme="mmsto" />
64            </intent-filter>
65            <meta-data
66                android:name="distractionOptimized"
67                android:value="true" />
68        </activity>
69
70        <!-- BroadcastReceiver that listens for incoming SMS messages -->
71        <receiver
72            android:name=".impl.receivers.MmsReceiver"
73            android:exported="false"
74            android:permission="android.permission.BROADCAST_WAP_PUSH">
75            <intent-filter>
76                <action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
77                <data android:mimeType="application/vnd.wap.mms-message" />
78            </intent-filter>
79        </receiver>
80
81        <!-- BroadcastReceiver that listens for incoming MMS messages -->
82        <receiver
83            android:name=".core.service.OnBootReceiver"
84            android:enabled="true"
85            android:exported="false"
86            android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
87            <intent-filter>
88                <action android:name="android.intent.action.BOOT_COMPLETED" />
89            </intent-filter>
90        </receiver>
91
92        <!-- BroadcastReceiver for car booting -->
93        <receiver
94            android:name=".impl.receivers.SmsReceiver"
95            android:exported="false"
96            android:permission="android.permission.BROADCAST_SMS">
97            <intent-filter>
98                <action android:name="android.provider.Telephony.SMS_DELIVER" />
99                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
100            </intent-filter>
101        </receiver>
102
103        <service
104            android:name=".core.service.MessengerService"
105            android:exported="false"
106            android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE">
107            <intent-filter>
108                <action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />
109                <category android:name="android.intent.category.DEFAULT" />
110
111                <data android:scheme="sms" />
112                <data android:scheme="smsto" />
113                <data android:scheme="mms" />
114                <data android:scheme="mmsto" />
115            </intent-filter>
116        </service>
117
118    </application>
119
120    <uses-permission android:name="android.permission.SEND_SMS" />
121    <uses-permission android:name="android.permission.RECEIVE_SMS" />
122    <uses-permission android:name="android.permission.READ_CONTACTS" />
123    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
124    <uses-permission android:name="android.permission.READ_SMS" />
125    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
126    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
127    <!-- Permissions required to know the current projection app status. -->
128    <uses-permission android:name="android.car.permission.ACCESS_CAR_PROJECTION_STATUS" />
129    <!-- Permissions required to retrieve the SubscriptionInfo#getIccId.
130         This maps to the bluetooth address and is necessary
131         for various functions such as Assistant device disambiguation,
132         checking the projection state and more etc.
133    -->
134    <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
135
136</manifest>
137