프로그래밍/android 53

Android 11 Full Screen

Android Full screen 처리하는 방식이 바뀌었는지 이전 코드가 Android 11 폰에서 제대로 동작하지 않더라. 아래 Android developer 사이트를 참고하자. https://developer.android.com/training/system-ui/immersive?hl=ko 전체 화면 모드 사용 설정 | Android 개발자 | Android Developers 동영상, 게임, 이미지 갤러리, 책, 프레젠테이션 슬라이드 같은 콘텐츠를 이용하기에 최적의 환경은 전체 화면입니다. 이 페이지에서는 전체 화면에서 사용자를 콘텐츠에 더욱 몰입하게 하는 방 developer.android.com https://developer.android.com/guide/topics/display-cu..

[android] Dp to Px, Px to Dp

DisplayMetrics를 통해서 density와 densityDpi 값을 구해보면 val density = resources.displayMetrics.density val densityDpi = resources.displayMetrics.densityDpi 기준이 되는 mdpi로 보면 densityDpi = 160 이므로, density = 160 / 160 = 1 즉, 1dp = 1px 그렇다면 density = densityDpi / 160 이라는 공식으로 densityDpi가 440 이라면 density는 2.75가 나온다. ※ Px to Dp val samplePx = 300 val density = resources.displayMetrics.density val value = (samp..

[android] Google play HostnameVerifier issue

모 회사로부터 긴급하게 해결 좀 해달라는 요청을 받았다. 구글 플레이에 앱을 심사 올렸는데, 이와 같은 이메일이 날라왔다는 것이다. Your app(s) are using an unsafe implementation of the HostnameVerifier interface. You can find more information about how resolve the issue in this Google Help Center article. 메일의 의미는 구글 플레이 콘솔에 등록한 versionCode 100, 101의 apk가 HostnameVerifier 이슈가 있기 때문에 이를 2021년 8월 31일까지 해결하라. 그렇지 않으면 구글 플레이에서 앱을 삭제할 것이라는 경고 메시지이다. ※ 원인 Ho..

[android] 방해금지모드 확인 (Do not disturb mode)

try { // off = 0, on - Priority Only = 1, Total Silence = 2, Alarms only = 3 val zenMode = Settings.Global.getInt(contentResolver, "zen_mode") } catch (e: Settings.SettingNotFoundException) { e.printStackTrace() } zenMode값이 0이라면 방해금지모드가 off라는 의미. 즉, 일반상태라는 것. 1은 중요한 알람만 받겠다. 2는 무음모드. 3은 알림만 허용. 이렇게 단순히 방해금지모드를 확인하는 것은 특별한 권한 없이 알아낼 수 있다. 하지만 방해금지모드에서 앱으로 볼륨을 조절과 같은 어떠한 행위를 하려면 권한이 필요하다.

[android] DialogFragment keyEvent (키 이벤트 수신)

▣ 키 이벤트 수신 선언 private val keyEventListener = DialogInterface.OnKeyListener {_, keyCode, event -> if (keyCode == KeyEvent.KEYCODE_ENTER && event.action == KeyEvent.ACTION_DOWN){ } true } ▣ 적용 override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { dialog.setOnKeyListener(keyEventListener) return inflater.inflate(R.layout.yours, container, f..

android PIP 예제 샘플 구현. 생각보다 쉽네 ~

안드로이드 8.0 Oreo 부터 지원되는 PIP(picture-in-picture) 기능을 사용해야 할 일이 생겨서 검색 조금 해본 결과 생각보다 쉽다는 것을 알게 되었다. 권한을 따로 요청할 필요도 없이 PIP가 필요한 activity에 옵션만 넣어주면 끝. 굳이 이 포스팅을 보지 않아도 안드로이드 개발자 사이트에 다 나와 있다. https://developer.android.com/guide/topics/ui/picture-in-picture?hl=ko PIP 모드 지원 | Android 개발자 | Android Developers Android 8.0에서는 활동을 PIP 모드로 실행할 수 있습니다. developer.android.com ▣ 코드 확인 AndroidManifest.xml YourAc..