LiveMedia
LiveMedia uses promoted ongoing notifications to create a "Live Activity" effect, bringing controls and track information directly to the screen.
Install / Use
/learn @RossSihovsk/LiveMediaREADME
🎵 LiveMedia: Always-On Media Control
🌟 Project Goal
The goal of LiveMedia is to transform standard media playback into a persistent, glanceable, and interactive experience. This application is designed exclusively for Android 16 and newer, with a preference for Google Pixel phones.
LiveMedia uses promoted ongoing notifications to create a "Live Activity" effect, bringing controls and track information directly to the screen. Through the in-app settings, you can customize which elements are displayed, such as album art, artist and album names, and playback controls.
It does not show any live notifications on the lock screen or Quick Settings to avoid duplication with the default media player.
🛠️ Code Description
The codebase is organized into the following key modules:
lockscreen: Manages the visibility of the media controls on the lock screen.media: Handles media state management, including theMusicStatedata class.notification: Contains theMediaNotificationListenerServicefor intercepting media notifications and theNotificationUpdateSchedulerfor updating the custom notification.qs: Manages Quick Settings state and disable notifications when Quick Settings are opened.ui: Defines the Jetpack Compose UI. This includes thePermissionScreenfor handling permission requests, theSettingsScreenfor customizing notification content.storage: Manages persistent user preferences for notification content usingSharedPreferences.permission: Responsible for permission requests and validating stateutils: Provides utility functions for logging and notification management.
🚀 Setup and Permissions
Since LiveMedia intercepts system notifications, explicit user permission is required.
Required Permissions
| Permission | Reason |
| :--- | :--- |
| Notification Listener | Required by MediaNotificationListenerService to access media metadata and session tokens. |
| Accessibility Service | Required by QSStateListener to detect when Quick Settings or the Notification Shade is opened, allowing the app to hide notifications during user interaction. |
Live Updates note:
You may need to manually open app notification settings and allow to use Live Updates. It's not required on PixelOS, but it may be required on other vendors, such as OnePlus.
Installation
Download APK (Recommended for Quick Setup):
* Navigate to the Releases tab of this repository.
* Download the latest release.apk file directly to your device.
* You will need to use APKMirror to install it or to disable Play Protect.
OR
Clone the repository:
git clone https://github.com/RossSihovsk/LiveMedia.git
*Open the project in Android Studio and build the APK.
*Install the app on your device.
After installation, go to Settings and manually grant Notification Listener Access and Accessibility Service to the LiveMedia app. Start playing music! The LiveMedia control should appear once media playback begins and the phone is unlocked.
🌍 Localization
LiveMedia supports 9 languages with complete translations for Settings and Permission screens. The app automatically displays in your device's system language.
Supported Languages
| Language | Locale Code | Native Name |
| :--- | :---: | :--- |
| English | en | English (Default) |
| Ukrainian | uk | Українська |
| German | de | Deutsch |
| Spanish | es | Español |
| Polish | pl | Polski |
| Hindi | hi | हिन्दी |
| Chinese | zh | 简体中文 |
| Japanese | ja | 日本語 |
| French | fr | Français |
The app will automatically use your device's language setting. If your device language is not in the list above, the app will default to English.
🎨 Customization & Supported Apps
Status Bar Pill: View the list of supported apps that display their icons in the status bar pill.
Notification Settings: Tailor the media notification to your preference. You have full control over the content and format, allowing you to toggle specific elements—such as album art, artist name, action buttons, and progress bars—to create a cleaner or more detailed look.
