summaryrefslogtreecommitdiff
path: root/player-android/android/app/src/main/AndroidManifest.xml
blob: 602051c997c9b2bc97a4d35dc68866d2cefaec4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Required for all network calls (API, streaming). -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- Required by audio_service to keep audio playing when the app is in the
         background.  Without this the OS may kill the media playback process. -->
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <!-- Required to declare mediaPlayback foreground service type on API 34+. -->
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
    <!-- Prevents the CPU from sleeping while audio is actively playing. -->
    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <application
        android:label="Player"
        android:name="${applicationName}"
        android:icon="@drawable/ic_launcher">
        <activity
            android:name=".MainActivity"
            android:exported="true"
            android:launchMode="singleTop"
            android:taskAffinity=""
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <meta-data
                android:name="io.flutter.embedding.android.NormalTheme"
                android:resource="@style/NormalTheme" />
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
        <!-- audio_service background playback service.
             android:foregroundServiceType="mediaPlayback" is mandatory on
             Android 10+ (API 29+) to grant media-playback foreground service
             privileges.  This overrides the entry auto-merged from
             audio_service's own manifest to explicitly pin the foreground
             service type.  Class names match audio_service 0.18.x internals. -->
        <service
            android:name="com.ryanheise.audioservice.AudioService"
            android:exported="true"
            android:foregroundServiceType="mediaPlayback">
            <intent-filter>
                <action android:name="android.media.browse.MediaBrowserService" />
            </intent-filter>
        </service>
        <!-- Receives hardware media button events (headset play/pause, etc.)
             and forwards them to audio_service. -->
        <receiver
            android:name="com.ryanheise.audioservice.MediaButtonReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MEDIA_BUTTON" />
            </intent-filter>
        </receiver>
    </application>
</manifest>