어플 등록중 구글 플레이스토어에서 정책 위반이라면서 다음과 같은 메일이 왔다.
아래 설명된 문제를 해결한 다음 변경한 업데이트를 제출하시기 바랍니다.
거부 이유: 콘텐츠 정책의 금지 사항 조항 위반
정기 검토 결과 앱에서 YouTube 동영상의 백그라운드 재생을 허용하는 것으로 확인되었으며, 이는 YouTube API 서비스 약관의 다음 부분을 위반하는 것입니다.
'귀하의 API 클라이언트 및 귀하는 사용자 또는 기타 제3자에게 다음 작업을 장려하거나 이를 가능하게 하는 기능을 만들어서는 안 됩니다. (8) YouTube API를 통해 이용하도록 제작된 모든 YouTube의 시청각 콘텐츠의 오디오 또는 동영상 요소를 구분, 분리, 수정하는 작업'
기존에 개발 된 어플을 수정만하고 있던차라 처음에는 full wake lock을 하는 서비스 때문에 문제가 있는거라 생각하여 쓸모없는 서비스라 제거를 하고 다시 시도를 했지만 2번째엔 앱이 삭제되었다고 메일이 왔다. 정책 위반사항은 위의 빨간색으로 표시한 것과 같은 내용이었다.
어플이 실제로는 webview를 통해서 모바일페이지를 보여주는 형태의 껍데기이기 때문에 계속 찾다보니 회사 사이트에서 youtube 사이트로 가는 링크가 있는것을 알게되었고, 거기서 영상을 재생하고 슬립모드로 들어가도 영상이 계속 재생(소리가 계속 재생됨)되는것을 확인하였다.
기본 인터넷 어플은 전혀 그런현상이 없는것을 확인하고 이리저리 알아본 결과 다음과 같이 해결할 수 있었다. webview가 있는 activity의 onPause를 추가한다.
protected void onPause() {
super.onPause();
try {
Class.forName("android.webkit.WebView")
.getMethod("onPause", (Class[]) null)
.invoke(webView, (Object[]) null);
} catch(Exception e) {
e.printStackTrace();
}
}
WebView.onPause()도 있으나 이 API는 Android 11에서부터 지원한다.
이제 영상은 정상적으로 pause되나 웹뷰 동작이 정상적이지 않게된다. 그것은 onResume을 호출해줌으로써 해결했다.
2017.1.10 추가
protected void onResume() {
super.onResume();
try {
Class.forName("android.webkit.WebView")
.getMethod("onResume", (Class[]) null)
.invoke(webView, (Object[]) null);
} catch(Exception e) {
e.printStackTrace();
}
}
'develop > android' 카테고리의 다른 글
ImageButton enable 설정 (0) | 2015.12.15 |
---|---|
Screen On/Off 이벤트 받기 (2) | 2015.10.29 |
특정 모듈만 build 하기 (0) | 2014.10.14 |
JAR에 포함된 apache log4j를 android용으로 변경 (0) | 2014.03.27 |
JNI에서 Java클래스의 필드 접근방법 (0) | 2014.01.20 |