Notice
Recent Posts
Recent Comments
Link
투케이2K
156. (TWOK/WORK) [업무 이슈] android 안드로이드 웹뷰에서 자바스크립트 getUserMedia Audio 대응 MODIFY_AUDIO_SETTINGS 권한 설정 본문
투케이2K 업무정리
156. (TWOK/WORK) [업무 이슈] android 안드로이드 웹뷰에서 자바스크립트 getUserMedia Audio 대응 MODIFY_AUDIO_SETTINGS 권한 설정
투케이2K 2025. 5. 12. 13:06[제 목]
[업무 이슈] android 안드로이드 웹뷰에서 자바스크립트 getUserMedia Audio 대응 MODIFY_AUDIO_SETTINGS 권한 설정
[내 용]
------------------------------------------------------------------------------
[개발 및 테스트 환경]
------------------------------------------------------------------------------
- 제목 : [업무 이슈] android 안드로이드 웹뷰에서 자바스크립트 getUserMedia Audio 대응 MODIFY_AUDIO_SETTINGS 권한 설정
- 테스트 환경 : 삼성 갤럭시 스마트폰
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[이슈 사항]
------------------------------------------------------------------------------
1. 안드로이드 웹뷰 (Webview) 에서 자바스크립트 getUserMedia Audio 사용해 오디오 사용 및 설정 요청 시
네이티브 MODIFY_AUDIO_SETTINGS 권한 누락으로 기능 미동작 이슈
2. 안드로이드 Manifest.permission.MODIFY_AUDIO_SETTINGS 설명 :
>> 애플리케이션이 글로벌 오디오 설정을 수정할 수 있도록 합니다
>> API 레벨 1 부터 사용 가능한 권한입니다
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[원인 파악 및 증상 재현]
------------------------------------------------------------------------------
1. 안드로이드에서 특정 URL 주소 웹뷰 로드 수행 실시 (카메라 스트림 웹페이지)
2. 웹 페이지에서 video, audio 권한을 요청하기 위해 getUserMedia 권한 사용 호출 실시
const localStream = await navigator.mediaDevices.getUserMedia({ // [휴대폰 카메라 사용 권한 요청]
video: true,
audio: true,
});
3. 안드로이드 웹뷰 webview.setWebChromeClient 부분에서 onPermissionRequest 필요 권한 사용 요청 들어온 목록 확인
// TODO [웹 권한 허용 처리]
@Override
public void onPermissionRequest(final PermissionRequest request) {
S_Log._W_("[웹 - 권한] PermissionRequest 요청 수행", new String[]{ "PermissionRequest :: " + String.valueOf(Arrays.toString(request.getResources())) });
// [권한 부여 수행]
request.grant(request.getResources());
}
4. 요청 목록에 Manifest.permission.MODIFY_AUDIO_SETTINGS 권한이 포함 되어 있지만, 실제 네이티브 Manifest 권한 선언 파일에 포함 되어 있지 않은 것 확인
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[조치 내용]
------------------------------------------------------------------------------
1. 안드로이드 AndroidManifest.xml 파일에서 오디오 사용해 필요한 Manifest.permission.MODIFY_AUDIO_SETTINGS 권한 추가 실시
<!-- ============================================================= -->
<!-- [마이크 사용 퍼미션] -->
<!-- ============================================================= -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[참고 사이트]
------------------------------------------------------------------------------
[안드로이드 퍼미션 확인 사이트]
https://developer.android.com/reference/android/Manifest.permission
[자바스크립트 AWS WebRTC 실시간 동영상 재생 수행 - KVS Stream Video]
https://blog.naver.com/kkh0977/223170500993?trackingCode=blog_bloghome_searchlist
[자바스크립트 video 비디오 태그에 재생 중 인 stream 스트림 을 캔버스 화면 녹화로 저장 실시 - canvas record]
https://blog.naver.com/kkh0977/223250767269?trackingCode=blog_bloghome_searchlist
[WebCam : navigator.mediaDevices.getUserMedia 사용해 웹 카메라 사용 권한 요청 및 video 스트림 영상 출력]
https://blog.naver.com/kkh0977/223028210600?trackingCode=blog_bloghome_searchlist
------------------------------------------------------------------------------
반응형
'투케이2K 업무정리' 카테고리의 다른 글
Comments