mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2026-02-03 21:15:57 +00:00
The past few Android releases have been adding restrictions to what services are allowed to do, for the sake of stopping services from using up too much battery in the background. The IntentService class, which GameFileCacheService uses, was even deprecated in Android 11 in light of this. Typically, the reason why you would want use a service instead of using a simple thread or some other concurrency mechanism from the Java standard library is if you want to be able to run code in the background while the user isn't using your app. This isn't actually something we care about for GameFileCacheService -- if Android wants to kill Dolphin there's no reason to keep GameFileCacheService running -- so let's make it not be a service. I'm changing this mainly for the sake of future proofing, but there is one immediate (minor) benefit: Previously, if you tried to launch Dolphin from Android Studio while your phone was locked, the whole app would fail to launch because launching GameFileCacheService wasn't allowed because Dolphin wasn't considered a foreground app.
159 lines
5.8 KiB
XML
159 lines
5.8 KiB
XML
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
package="org.dolphinemu.dolphinemu">
|
|
|
|
<uses-feature
|
|
android:name="android.hardware.touchscreen"
|
|
android:required="false"/>
|
|
<uses-feature
|
|
android:name="android.hardware.sensor.accelerometer"
|
|
android:required="false"/>
|
|
<uses-feature
|
|
android:name="android.hardware.sensor.gyroscope"
|
|
android:required="false"/>
|
|
<uses-feature
|
|
android:name="android.hardware.gamepad"
|
|
android:required="false"/>
|
|
<uses-feature
|
|
android:name="android.software.leanback"
|
|
android:required="false"/>
|
|
|
|
<uses-feature android:glEsVersion="0x00030000"/>
|
|
|
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
|
<uses-permission android:name="android.permission.INTERNET"/>
|
|
<uses-permission android:name="com.android.providers.tv.permission.READ_EPG_DATA"/>
|
|
<uses-permission android:name="com.android.providers.tv.permission.WRITE_EPG_DATA"/>
|
|
<uses-permission
|
|
android:name="android.permission.VIBRATE"
|
|
android:required="false"/>
|
|
|
|
<!-- Once compileSdkVersion is 31, add: android:dataExtractionRules="@xml/backup_rules_api_31" -->
|
|
<application
|
|
android:name=".DolphinApplication"
|
|
android:label="@string/app_name"
|
|
android:icon="@drawable/ic_launcher"
|
|
android:requestLegacyExternalStorage="true"
|
|
android:preserveLegacyExternalStorage="true"
|
|
android:allowBackup="true"
|
|
android:fullBackupContent="@xml/backup_rules"
|
|
android:supportsRtl="true"
|
|
android:isGame="true"
|
|
android:banner="@drawable/banner_tv"
|
|
android:hasFragileUserData="true">
|
|
<meta-data
|
|
android:name="android.max_aspect"
|
|
android:value="2.1"/>
|
|
|
|
<activity
|
|
android:name=".ui.main.MainActivity"
|
|
android:exported="true"
|
|
android:theme="@style/DolphinBase">
|
|
|
|
<!-- This intentfilter marks this Activity as the one that gets launched from Home screen. -->
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN"/>
|
|
|
|
<category android:name="android.intent.category.LAUNCHER"/>
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".ui.main.TvMainActivity"
|
|
android:exported="true"
|
|
android:theme="@style/DolphinTvBase">
|
|
|
|
<!-- This intentfilter marks this Activity as the one that gets launched from Home screen. -->
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN"/>
|
|
|
|
<category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".features.settings.ui.SettingsActivity"
|
|
android:exported="false"
|
|
android:configChanges="orientation|screenSize"
|
|
android:theme="@style/DolphinSettingsBase"
|
|
android:label="@string/settings"/>
|
|
|
|
<activity
|
|
android:name=".features.cheats.ui.CheatsActivity"
|
|
android:exported="false"
|
|
android:theme="@style/DolphinSettingsBase"
|
|
android:label="@string/cheats"/>
|
|
|
|
<activity
|
|
android:name=".activities.EmulationActivity"
|
|
android:exported="false"
|
|
android:theme="@style/DolphinEmulationBase"
|
|
android:preferMinimalPostProcessing="true"/>
|
|
|
|
<activity
|
|
android:name=".activities.CustomFilePickerActivity"
|
|
android:exported="false"
|
|
android:label="@string/app_name"
|
|
android:theme="@style/FilePickerTheme">
|
|
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.GET_CONTENT"/>
|
|
<category android:name="android.intent.category.DEFAULT"/>
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".activities.AppLinkActivity"
|
|
android:exported="true">
|
|
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW"/>
|
|
<category android:name="android.intent.category.DEFAULT"/>
|
|
<data
|
|
android:host="@string/host"
|
|
android:scheme="@string/scheme"/>
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
<activity
|
|
android:name=".activities.ConvertActivity"
|
|
android:exported="false"
|
|
android:theme="@style/DolphinBase" />
|
|
|
|
<activity
|
|
android:name=".activities.UserDataActivity"
|
|
android:exported="false"
|
|
android:label="@string/user_data_submenu"
|
|
android:theme="@style/DolphinSettingsBase" />
|
|
|
|
<activity
|
|
android:name=".features.riivolution.ui.RiivolutionBootActivity"
|
|
android:exported="false"
|
|
android:theme="@style/DolphinBase" />
|
|
|
|
<service
|
|
android:name=".services.SyncChannelJobService"
|
|
android:exported="false"
|
|
android:permission="android.permission.BIND_JOB_SERVICE"/>
|
|
|
|
<service
|
|
android:name=".services.SyncProgramsJobService"
|
|
android:exported="false"
|
|
android:permission="android.permission.BIND_JOB_SERVICE"/>
|
|
|
|
<provider
|
|
android:name="androidx.core.content.FileProvider"
|
|
android:authorities="${applicationId}.filesprovider"
|
|
android:exported="false"
|
|
android:grantUriPermissions="true">
|
|
<meta-data
|
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
|
android:resource="@xml/nnf_provider_paths"/>
|
|
</provider>
|
|
|
|
</application>
|
|
|
|
</manifest>
|
|
|