일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- bluetoothmanager
- 셀룰로오스-g-폴리락타이드 공중합체
- 안드로이드 비콘
- 코루틴 job
- 모의위치 주입
- compse state
- 상태바 가려짐현상 #소프트키 가려짐
- 안드로이드스튜디오 jdk
- 코틀린 트리거 버튼
- withContext
- 토글 험수
- 안드로이드 mvvm
- apk이름변경
- 코틀린 이미지저장 #파일저장
- #큐구조 #큐다운로드
- 1회용 플라스틱컵
- 커스텀스피너
- compse collectAsState
- viewmodelscope
- TwomonUSB
- var 와 val
- 라이브데이터 postValue
- 안드로이드 sms
- 스레드 #코루틴
- 구버전 안드로이드 스튜디오
- TowmonUSB 연결오류
- Room 데이터베이스 업데이트
- 안드로이드 스튜디오 애뮬레이터
- 안드로이드스튜디오 다운
- 비콘스캐닝
- Today
- Total
목록분류 전체보기 (57)
EnjoyLife
1. https://developer.android.com/studio/archive?hl=ko 2.우측상단의 "한국어"를 "English" 로 변경 3.동의하기 클릭 4.아래처럼 다양한 버전을 다운받을수있다.
액티비티의 onCreate() 레이아웃호출 위에 삽입 // 상태바 아이콘을 밝게(흰색) 변경 WindowCompat.setDecorFitsSystemWindows(getWindow(), false); getWindow().setStatusBarColor(getResources().getColor(R.color.gray));//본인이 설정 // 상태바 아이콘을 밝게(흰색) 변경 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { WindowInsetsController insetsController = getWindow().getDecorView().getWindowInsetsControl..
AGP,Gradle 버전만 잘 맞추는 방법은 아래에 자세히 설명되어 있지만 눈에 잘 와닿지 않는다. https://developer.android.com/build/releases/gradle-plugin?hl=ko#updating-gradle사이트에 가면 아래 2가지의 표가 있다. 1.Gradle 업데이트 2.Android Gradle 플러그인과 Android 스튜디오 호환성 우선 내가 만족스럽게 사용하는 Koala를 예로 들겠다. 나는 koala와 Narwhal 버전에서 사용하고 싶다.이럴경우 AGP와 Gradle 버전만 알아내면 끝이다. 1단계 ) AGP 버전 찾기 [ Android Gradle 플러그인과 Android 스튜디오 호환성 ]표를 보고 사용하고자 하는 안드로이드스튜디오 이름에..
상황 lifecycleScope/viewModelScope 사용 불가 이유 반드시 CoroutineScope 직접 써야 하는 이유1. Repository 등 "ViewModel이 아닌" 객체lifecycleScope/viewModelScope는 Activity, ViewModel에만 있음자체적으로 스코프 관리 필요2. 라이브러리 개발 (외부에 의존성 없이)앱 구조에 종속되면 안 됨독립적으로 코루틴 관리 필요3. 백그라운드 서비스/포그라운드 서비스Service에는 lifecycl..
코루틴 스코프 종류도 많고 역할도 각기 다르고 헷갈립니다.쉽게 외우는 방법을 공유합니다. 아래처럼 “L → V → G” 순으로 떠올리면 기억하기 쉽습니다.L: lifecycleScope소유자: Activity/Fragment용도: UI 관련 작업 → UI가 살아 있는 동안만 실행기억법: Lifecycle → Life(생명)V: viewModelScope소유자: ViewModel용도: 비즈니스 로직(네트워크·DB) → ViewModel이 살아 있는 동안 실행기억법: ViewModel → View(화면 뒤 로직)G: GlobalScope소유자: 앱 전체(Application)용도: 전역 작업(앱 프로세스 전체) → 수동 취소 필요기억법: Global(전역) Scope ..
Spinner 자체가 강제적으로 dropdown 을 닫는 기능을 고려해서 만들지 않았다. 기본적으로 스피너의 아이템 클릭하면 바로 dropdown 이 닫히기때문이다. 그래도 억지로 커스텀 스피너를 만들어 버튼을 이용해 dropdown을 닫고자 한다면 이 방법이 가장 간단하다 binding.btnAction.setOnClickListener { val parentView = parent as? AdapterView parentView?.performItemClick(binding.root, position, getItemId(position)) }
결론: 안드로이드 14에서 LocationManager 의 removeTestProvider,setTestProviderEnabled 함수를 사용못하게 막아놨기 때문에 사용불가하다.사용해도 "java.lang.IllegalArgumentException: gps provider is not a test provider" 오류가 발생한다.FusedLocationProviderClient 의 fusedClient.setMockMode(false) 호출만으로도 충분히 모의위치 주입 해제가 된다. 구글지도앱을 실행해도 실제 위치로 이동한것을 볼수 있다. // 100% 오류 발생 addedProviders.forEach { provider -> try { loc..
fun isServiceRunning(serviceClass: Class): Boolean { val activityManager = getSystemService(Context.ACTIVITY_SERVICE) as? android.app.ActivityManager ?: return false return try { activityManager.getRunningServices(Int.MAX_VALUE) .any { it.service.className == serviceClass.name } } catch (e: Exception) { false } }