Android 32

Mac OS에서 안드로이드 휴대폰 화면 미러링하기

요즘들어 시기가 시기인만큼 화상 회의가 많아져서 현재 개발진행 상황을 공유해야 할 때가 많다. 안드로이드 개발자인 나는 에뮬레이터 보다 실제 디바이스를 연결하여 작업을 하기 때문에 화상 회의를 할때면 항상 화면을 미러링해야 하는데 미러링 툴이 많이 있지만 나는 scrcpy 프로그램을 설치하여 사용하고 있다. brew가 설치되어 있다고 가정하고, 터미널에서 아래 명령어를 친다. (설치가 생각보다 오래걸린다) $ brew install scrcpy 안드로이드 개발자라면 당연히 android SDK가 설치되어 있을거라 생각되지만, 혹시라도 그렇지 않다면 android-platform-tools를 설치한다. (직접 확인은 안해보았음) $ brew install android-platform-tools 디바이스의..

프로그래밍/etc 2022.01.15

[android] Android 12 Vibrator Pattern(진동 패턴) VibratorManager VIBRATOR_MANAGER_SERVICE

안드로이드 12 (target 31) 에서 새롭게 VIBRATOR_MANAGER_SERVICE가 추가되어 기존에 사용하던 VIBRATOR_SERVICE가 deprecated 되었다. VibratorManager 선언하기 (버전 분기) val vibrator = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { val manager = getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager manager.defaultVibrator } else { @Suppress("DEPRECATION") getSystemService(Context.VIBRATOR_SERVICE) as Vibrator }..

[android] Kotlin ArrayList SharedPreferences json data (feat. Gson)

▣ Model data class Person(val name: String, val age: Int) ▣ Read val preferences = getSharedPreferences("pref", Context.MODE_PRIVATE) val jsonData = preferences.getString("person", "") val gson = Gson() val token: TypeToken = object : TypeToken(){} val list: MutableList? = gson.fromJson(jsonData, token.type) ▣ Write val preferences = getSharedPreferences("pref", Context.MODE_PRIVATE) val jsonDat..

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] 방해금지모드 확인 (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은 알림만 허용. 이렇게 단순히 방해금지모드를 확인하는 것은 특별한 권한 없이 알아낼 수 있다. 하지만 방해금지모드에서 앱으로 볼륨을 조절과 같은 어떠한 행위를 하려면 권한이 필요하다.