SessionManager повторное подключение
При выходе из сна на ммс теряется подключение к mediaController. После выхода из сна я повторно использую код для подключения:
mediaSessionManager = (MediaSessionManager) getSystemService(Context.MEDIA_SESSION_SERVICE);
componentName = new ComponentName(getApplicationContext().getPackageName(),
getApplicationContext().getPackageName() + "." + this.getClass().getSimpleName());
try {
mediaSessionManager.addOnActiveSessionsChangedListener(sessionListener, componentName);
List<MediaController> controllers = mediaSessionManager.getActiveSessions(componentName);
mediaController = pickController(controllers);
if (mediaController != null) {
mediaController.registerCallback(callback);
meta = mediaController.getMetadata();
updateMetadata();
}
} catch (SecurityException e) {
}
Подключение почему-то происходит не с первого раза. И поэтому, если у меня нет играющей музыки, то я в логах получаю сообщение
W/SessionManager: Attempted to add session listener twice, ignoring
Понятно что я повторно добавляю мультимедиа сессию, но нигде не могу найти код для проверки, подключена ли медиасессия. Если кто знает, подскажите как избежать этого предупреждения
Ответы (1 шт):
Автор решения: Arty Morris
→ Ссылка
Нашёл решение
if (mediaSessionManager.getActiveSessions(componentName) == null) {
mediaSessionManager.addOnActiveSessionsChangedListener(sessionListener, componentName);
}