이틀 째 밤을 지새웠다..
PIP 모드
특정 앱이 팝업화면에서 노티피케이션도 없는데 포그라운드 판정을 받는다. 딱히 권한도 없고.. 팝업화면에서 메모리정리해도 팝업화면에 영향이 가지 않는다...
-> 종료가 되지 않는다는 해당 앱의 권한들을 좀 더 자세히 알아보고자 앱 정보를 열어봤는데 PIP 기능이라는 것이 있었습니다.
그리고 pip모드라는 개념을 새로 알게 되었습니다.
이에 따라서 PIP 모드로 동작하는 앱들에 대해서는 제 앱의 기능이 동작하지 않았기에, 계획을 세우게 되었습니다.
PIP 모드 관리 접근 계획
1. pip 모드를 관리할 수 있는 방법은 없는가?
ex) pip모드인 것들 관리, pip 위에서 작동하게끔 지정 등
2. 수면 화면 발동 시 약간의 딜레이를 주어 한번 더 기능들을 작동시켜야 할 것
3. 내 앱에선 pip 금지 (pip mode block in my app)
4. 안되면 내가 직접 pip모드가 되어보기.
위의 정보들을 찾다 보니 1번과 3번은 기능이 없어서 탈락하게 되었고, 2번과 4번으로 추려지게 되었습니다.
구현 방향
A. pip모드 맞대응
B. 시간차로 audiofocus와 notification_listner 획득.(앱이 로딩되는 시간 기다렸다가 진행)
-> 하지만 어차피 화면안꺼지고, pip모드가 켜져있어서 탈락.
따라서 PIP 모드를 맞대응하기로 결심했고, 제 앱에서도 PIP 기능을 동작시켜서
현재 실행 중인 PIP 앱을 종료시키도록 했습니다.
그러다 추가로 신기한 점을 발견하여 Y사 스트리밍 서비스에 Issue를 남겼습니다.
신기한점 :
Y사 앱을 당잠사에서 키고 그걸 그대로 냅두면 mediasession이 잡히는데
-> replace 닫을 시 당잠사 앱. 당잠사 앱 닫을시 Y사 앱. Y사 앱 닫을시 배경화면
킨 Y사 앱을 나간 뒤 당잠사 앱도 나간 뒤 새로 Y사 앱을 키면 mediasession이 안잡힘.
-> replace 닫을 시 Y사 앱. Y사 앱 닫을시 배경화면
하지만 음악플레이어는 어떻게하던간에 잡힘. -> notification_listener에는 문제없음 확인.
그래서 태스크 스택문제인가 하고 있었음.
그러다
replace때문에 못잡는건지, 아니면 스택문제인건지 NotificationListenerService 직접구현
-> 일단확실한거 Twitch는 미디어세션 절대이용하지않음. 다 오디오포커스였음. C사도 오디오포커스로 잡은거고,
오류로 인해 NotificationListenerSerevice 허용때만 audiofocus가 작동했던거.. 풀화면이던 팝업창이던 twitch는 미디어세션을 이용하지않음. 재생버튼 아무리눌러봐도 여전함.
Y 앱 자체에 mediasession 관리오류가 있는듯.
이건 액티비티 태스크 스택관련문제도 아니고, replace문제도 아니고 Y 앱의 이슈였습니다.
앱을끄지않는 경우, 계속 똑같은동영상만 재생했다가 중지했다가 했으니 그땐 몰랐겠지만.. 앱을 끄고 나서 새로 스트리밍을 하는 경우엔 자꾸 안잡혔던 거였습니다.
어쨌든 산전수전 과정속에서 다시한번 느끼고 가는 교훈 : 역시 디버깅에는 기본 실행흐름부터 직접 테스트해서 디버깅해보는게 최고야..
Issue:
안녕하세요..!! 그냥 일반 대학생입니다. 얘기하고싶은 내용은 안드로이드 Y사 app에 관한 오류?사항입니다. 제가 뭐라도 된것마냥 말씀드리는건 아니구요 ㅠ 그냥 어쩌다가 알게되었는데 전해드리는게 좋을 것 같아서 이렇게 보냅니다..
제가 안드로이드 MediaSession에 대해서 분석을 좀 하다가 Y사 앱에서 MediaSession 관련 처리 오류(?)를 알게되었는데요..
처음 앱을 키고 터치를 통해 미디어 재생 시에, 동영상이 재생중인데도 불구하고 미디어세션이 활성화되지 않고, 미디어 조작버튼을 한번 이상 누르고 난 후에야 미디어세션이 활성화되는 현상을 어쩌다 보니 알게되었습니다. 제가 완전 멍청하기때문에.. 혹시라도 이게 의도된건데 이렇게 말씀드리는거라면 정말죄송합니다. 혹시라도 사용자분들이 미디어세션관련기능을 사용하시다가 에러를 겪을 수 있는 가능성이 있을 것도 같아서.. 이렇게 보냅니다. 읽어주셔서 정말 감사드립니다.
'[클라이언트] > [Android Kotlin]' 카테고리의 다른 글
상속에 대한 이해 (1) | 2020.12.29 |
---|---|
[Android] 당신이 잠든 사이에(앱 자동종료 타이머)앱 새 단장!! (1) | 2020.11.19 |
[2020.10.27] '당신이 잠든 사이에' 업데이트 (0) | 2020.10.27 |
[2020.10.26] '당신이 잠든 사이에' 업데이트 - 불필요한 코드 제거하는 방법 (0) | 2020.10.26 |
[2020.10.25] '당신이 잠든 사이에' 오류&버그 수정 업데이트 (0) | 2020.10.26 |