| <manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
| xmlns:tools="http://schemas.android.com/tools"> | |
| <!-- ==================== PERMISSIONS ==================== --> | |
| <!-- Bluetooth --> | |
| <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_ADVERTISE" /> | |
| <uses-permission android:name="android.permission.BLUETOOTH_SCAN" /> | |
| <!-- Network & Internet (single declaration) --> | |
| <uses-permission android:name="android.permission.INTERNET" /> | |
| <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> | |
| <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> | |
| <!-- Camera (QR code scanning) --> | |
| <uses-permission android:name="android.permission.CAMERA" /> | |
| <!-- Haptic Feedback --> | |
| <uses-permission android:name="android.permission.VIBRATE" /> | |
| <!-- Location (required for Bluetooth scanning on Android < 12) --> | |
| <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> | |
| <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> | |
| <!-- Foreground Services --> | |
| <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> | |
| <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" /> | |
| <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" /> | |
| <uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE" /> | |
| <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" /> | |
| <!-- Sensors --> | |
| <uses-permission android:name="android.permission.BODY_SENSORS" /> | |
| <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" /> | |
| <!-- Audio --> | |
| <uses-permission android:name="android.permission.RECORD_AUDIO" /> | |
| <!-- Wake Lock --> | |
| <uses-permission android:name="android.permission.WAKE_LOCK" /> | |
| <!-- Package Visibility for Voice Speech Recognition (Android 11+) --> | |
| <queries> | |
| <intent> | |
| <action android:name="android.speech.RecognitionService" /> | |
| </intent> | |
| </queries> | |
| <!-- Notifications (Android 13+) --> | |
| <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> | |
| <!-- Boot Completed (optional – if you don't have BootReceiver, omit) --> | |
| <!-- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> --> | |
| <!-- External Storage (optional, if needed) --> | |
| <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> | |
| <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> | |
| <!-- ==================== FEATURES ==================== --> | |
| <uses-feature | |
| android:name="android.hardware.camera" | |
| android:required="false" /> | |
| <uses-feature | |
| android:name="android.hardware.bluetooth" | |
| android:required="false" /> | |
| <uses-feature | |
| android:name="android.hardware.sensor.gyroscope" | |
| android:required="false" /> | |
| <uses-feature | |
| android:name="android.hardware.sensor.accelerometer" | |
| android:required="false" /> | |
| <uses-feature | |
| android:name="android.hardware.microphone" | |
| android:required="false" /> | |
| <uses-feature | |
| android:name="android.hardware.usb.accessory" | |
| android:required="false" /> | |
| <application | |
| android:name=".AirMouseApplication" | |
| android:allowBackup="true" | |
| android:hardwareAccelerated="true" | |
| android:largeHeap="true" | |
| android:icon="@mipmap/ic_launcher" | |
| android:label="@string/app_name" | |
| android:roundIcon="@mipmap/ic_launcher_round" | |
| android:supportsRtl="true" | |
| android:theme="@style/Theme.AirMouse" | |
| android:usesCleartextTraffic="true" | |
| android:networkSecurityConfig="@xml/network_security_config" | |
| android:appCategory="game" | |
| tools:targetApi="34"> | |
| <!-- ==================== MAIN ACTIVITY ==================== --> | |
| <activity | |
| android:name=".presentation.MainActivity" | |
| android:exported="true" | |
| android:screenOrientation="fullSensor" | |
| android:configChanges="orientation|screenSize|keyboardHidden|keyboard|locale|uiMode" | |
| android:theme="@style/Theme.AirMouse.Splash" | |
| android:windowSoftInputMode="adjustResize"> | |
| <intent-filter> | |
| <action android:name="android.intent.action.MAIN" /> | |
| <category android:name="android.intent.category.LAUNCHER" /> | |
| </intent-filter> | |
| <intent-filter> | |
| <action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" /> | |
| </intent-filter> | |
| <meta-data android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" android:resource="@xml/usb_accessory_filter" /> | |
| <!-- Deep link for pairing --> | |
| <intent-filter> | |
| <action android:name="android.intent.action.VIEW" /> | |
| <category android:name="android.intent.category.DEFAULT" /> | |
| <category android:name="android.intent.category.BROWSABLE" /> | |
| <data android:scheme="airmouse" android:host="connect" /> | |
| </intent-filter> | |
| <intent-filter> | |
| <action android:name="android.intent.action.VIEW" /> | |
| <category android:name="android.intent.category.DEFAULT" /> | |
| <category android:name="android.intent.category.BROWSABLE" /> | |
| <data android:scheme="airmouse" android:host="pair" /> | |
| </intent-filter> | |
| </activity> | |
| <!-- ==================== BOOT COMPLETED RECEIVER (REMOVED) ==================== --> | |
| <!-- If you want to enable auto-start on boot, create BootReceiver class and uncomment below --> | |
| <!-- | |
| <receiver | |
| android:name=".utils.BootReceiver" | |
| android:exported="true" | |
| android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> | |
| <intent-filter> | |
| <action android:name="android.intent.action.BOOT_COMPLETED" /> | |
| <action android:name="android.intent.action.QUICKBOOT_POWERON" /> | |
| </intent-filter> | |
| </receiver> | |
| --> | |
| <!-- ==================== PROVIDERS ==================== --> | |
| <provider | |
| android:name="androidx.core.content.FileProvider" | |
| android:authorities="${applicationId}.file_provider" | |
| android:exported="false" | |
| android:grantUriPermissions="true"> | |
| <meta-data | |
| android:name="android.support.FILE_PROVIDER_PATHS" | |
| android:resource="@xml/file_paths" /> | |
| </provider> | |
| <!-- ==================== METADATA ==================== --> | |
| <meta-data | |
| android:name="com.google.android.gms.version" | |
| android:value="@integer/google_play_services_version" /> | |
| <!-- Enable profiling and custom atrace capture by Perfetto --> | |
| <profileable android:shell="true" /> | |
| <!-- ==================== SERVICES ==================== --> | |
| <service | |
| android:name="com.airmouse.mirroring.ScreenMirroringService" | |
| android:enabled="true" | |
| android:exported="false" | |
| android:foregroundServiceType="mediaProjection" /> | |
| <service | |
| android:name="com.airmouse.service.AirMouseTileService" | |
| android:label="Air Mouse" | |
| android:icon="@drawable/ic_mouse" | |
| android:permission="android.permission.BIND_QUICK_SETTINGS_TILE" | |
| android:exported="true"> | |
| <intent-filter> | |
| <action android:name="android.service.quicksettings.action.QS_TILE" /> | |
| </intent-filter> | |
| </service> | |
| </application> | |
| </manifest> |
Xet Storage Details
- Size:
- 8.08 kB
- Xet hash:
- e49622e11f559b4a4f05b10b70393c1715abdaac2478b0c6a1d6319e77d8a3f0
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.