1<?xml version="1.0" encoding="utf-8"?> 2<manifest xmlns:android="http://schemas.android.com/apk/res/android"> 3 <uses-feature 4 android:name="android.hardware.microphone" 5 android:required="false" /> 6 <uses-feature 7 android:name="android.hardware.audio.output" 8 android:required="true" /> 9 <uses-feature 10 android:name="android.hardware.touchscreen" 11 android:required="false" /> 12 <uses-feature 13 android:name="android.software.midi" 14 android:required="false" /> 15 <uses-feature 16 android:name="android.software.leanback" 17 android:required="false" /> 18 19 <uses-permission android:name="android.permission.RECORD_AUDIO" /> 20 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 21 <uses-permission android:name="android.permission.INTERNET" /> 22 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 23 <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> 24 <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" /> 25 <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" /> 26 27 <application 28 android:icon="@mipmap/ic_launcher" 29 android:label="@string/app_name" 30 android:supportsRtl="true" 31 android:theme="@style/AppTheme" 32 android:requestLegacyExternalStorage="true" 33 android:banner="@mipmap/ic_launcher"> 34 <activity 35 android:name=".MainActivity" 36 android:launchMode="singleTask" 37 android:screenOrientation="portrait" 38 android:exported="true"> 39 <intent-filter> 40 <action android:name="android.intent.action.MAIN" /> 41 42 <category android:name="android.intent.category.LAUNCHER" /> 43 <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> 44 </intent-filter> 45 </activity> 46 <activity 47 android:name=".TestOutputActivity" 48 android:label="@string/title_activity_test_output" 49 android:screenOrientation="portrait" /> 50 <activity 51 android:name=".TestInputActivity" 52 android:label="@string/title_activity_test_input" 53 android:screenOrientation="portrait" /> 54 <activity 55 android:name=".TapToToneActivity" 56 android:label="@string/title_activity_output_latency" 57 android:screenOrientation="portrait" /> 58 <activity 59 android:name=".RecorderActivity" 60 android:label="@string/title_activity_recorder" 61 android:screenOrientation="portrait" /> 62 <activity 63 android:name=".EchoActivity" 64 android:label="@string/title_activity_echo" 65 android:screenOrientation="portrait" /> 66 <activity 67 android:name=".RoundTripLatencyActivity" 68 android:label="@string/title_activity_rt_latency" 69 android:screenOrientation="portrait" /> 70 <activity 71 android:name=".ManualGlitchActivity" 72 android:label="@string/title_activity_glitches" 73 android:screenOrientation="portrait" /> 74 <activity 75 android:name=".AutomatedGlitchActivity" 76 android:label="@string/title_activity_auto_glitches" 77 android:screenOrientation="portrait" /> 78 <activity 79 android:name=".TestDisconnectActivity" 80 android:label="@string/title_test_disconnect" 81 android:screenOrientation="portrait" /> 82 <activity 83 android:name=".DeviceReportActivity" 84 android:label="@string/title_report_devices" 85 android:screenOrientation="portrait" /> 86 <activity 87 android:name=".TestDataPathsActivity" 88 android:label="@string/title_data_paths" 89 android:screenOrientation="portrait" /> 90 <activity 91 android:name=".ExtraTestsActivity" 92 android:exported="true" 93 android:label="@string/title_extra_tests" 94 android:screenOrientation="portrait" /> 95 96 <activity 97 android:name=".ExternalTapToToneActivity" 98 android:label="@string/title_external_tap" 99 android:exported="true" 100 android:screenOrientation="portrait" /> 101 <activity 102 android:name=".TestPlugLatencyActivity" 103 android:label="@string/title_plug_latency" 104 android:exported="true" 105 android:screenOrientation="portrait" /> 106 <activity 107 android:name=".TestErrorCallbackActivity" 108 android:label="@string/title_error_callback" 109 android:exported="true" 110 android:screenOrientation="portrait" /> 111 <activity 112 android:name=".TestRouteDuringCallbackActivity" 113 android:label="@string/title_route_during_callback" 114 android:exported="true" 115 android:screenOrientation="portrait" /> 116 <activity 117 android:name=".DynamicWorkloadActivity" 118 android:label="@string/title_dynamic_load" 119 android:exported="true" 120 android:screenOrientation="portrait" /> 121 <activity 122 android:name=".TestColdStartLatencyActivity" 123 android:label="@string/title_cold_start_latency" 124 android:exported="true" 125 android:screenOrientation="portrait" /> 126 <activity 127 android:name=".TestRapidCycleActivity" 128 android:label="@string/title_rapid_cycle" 129 android:exported="true" 130 android:screenOrientation="portrait" /> 131 132 <service 133 android:name=".MidiTapTester" 134 android:permission="android.permission.BIND_MIDI_DEVICE_SERVICE" 135 android:exported="true"> 136 <intent-filter> 137 <action android:name="android.media.midi.MidiDeviceService" /> 138 </intent-filter> 139 140 <meta-data 141 android:name="android.media.midi.MidiDeviceService" 142 android:resource="@xml/service_device_info" /> 143 </service> 144 145 <service 146 android:name=".AudioForegroundService" 147 android:foregroundServiceType="mediaPlayback|microphone" 148 android:exported="false"> 149 </service> 150 151 <provider 152 android:name="androidx.core.content.FileProvider" 153 android:authorities="${applicationId}.provider" 154 android:exported="false" 155 android:grantUriPermissions="true"> 156 <meta-data 157 android:name="android.support.FILE_PROVIDER_PATHS" 158 android:resource="@xml/provider_paths" /> 159 </provider> 160 </application> 161 162</manifest> 163