일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Room 데이터베이스 업데이트
- compse collectAsState
- TwomonUSB
- compse state
- 안드로이드 비콘
- bluetoothmanager
- var 와 val
- json 저장
- withContext
- 일회용 플라스틱
- 플라스틱 생분해
- #큐구조 #큐다운로드
- 1회용컵
- 데이터바인딩
- 코틀린 트리거 버튼
- 안드로이드 스튜디오 애뮬레이터
- 라이브데이터 postValue
- 토글 험수
- viewmodelscope
- TowmonUSB 연결오류
- livedata
- apk이름변경
- 스레드 #코루틴
- 안드로이드 sms
- 1회용 플라스틱컵
- 안드로이드 mvvm
- 생분해성 플라스틱
- 셀룰로오스-g-폴리락타이드 공중합체
- 코틀린 이미지저장 #파일저장
- 코루틴 job
- Today
- Total
목록안드로이드 개발 (35)
EnjoyLife
1.모의위치 주입 Android에서 모의 위치 API는 주로 LocationManager를 사용하여 테스트 목적으로 가짜 GPS 위치를 주입하는 데 사용됩니다. 이를 통해 개발자는 앱의 위치 기반 기능을 테스트할 수 있습니다. 주요 개념과 사용 방법은 다음과 같습니다:1. 모의 위치 제공자 추가 addTestProvider 메서드를 사용하여 모의 위치 제공자를 추가합니다. 이 제공자는 GPS, 네트워크 등과 같은 실제 위치 제공자를 모방합니다. private lateinit var locationManager: LocationManagerlocationManager.addTestProvider( LocationManager.GPS_PROVIDER, // GPS 제공자 false, fal..

결론은 불가능하다. 구글정책에 의해 (아래 링크 참고) 기본SMS앱에 사용자가 등록한 앱이 아니면 브로드캐스트리시버로 문자를 읽을때 필요한 권한인 READ_SMS, RECEIVE_SMS, SEND_SMS 이 권한 자체를 사용할수 없다. 본인이 직접 SMS앱을 만들어서 사용자가 그 앱을 기본SMS앱으로 등록시켜서 사용하게 하면 된다.그러면 단말기에서 온 SMS문자를 다 읽을수 있다. 링크를 들어가 정책내용을 보면 아래 부분에 명확하게 명시해 줬다. " 그 권한과 관련된 핵심 기기 기능을 위한 사용자의 기본 핸들러로 등록되어야 합니다. 예를 들어 통화 관련 권한에 액세스하려면 앱이 예외 사례를 충족하지 않는 한, 앱을 사용자의 기본 휴대전화 핸들러 또는 어시스턴트 핸들러로 등록해야 합니다." " 앱은 ..
획득 방식BluetoothAdapter.getDefaultAdapter()예전부터 있던 static 메서드로, “기본” 블루투스 어댑터 인스턴스를 바로 반환합니다.Android 12(API 31) 이전에는 흔히 쓰였으나, 이후 deprecated 되어 앞으로는 사용하지 않는 것이 권장됩니다.BluetoothManagerAndroid 4.3(API 18)부터 도입된 시스템 서비스(API)를 통해 얻습니다.Context.getSystemService(Context.BLUETOOTH_SERVICE)로 BluetoothManager를 받아오고, 거기서 adapter 프로퍼티로 어댑터를 꺼냅니다.생명주기 관리BluetoothAdapter.getDefaultAdapter()는 단순히 어댑터 객체를 반환만 합니다.B..
단.배터리 절전모드(Doze)에 빠지면 중단되니, 배터리 제한없음으로 적용해야 한다. 기능 종류등록 방식 예시백그라운드 동작 여부BLE 스캔bluetoothLeScanner.startScan()앱 프로세스가 살아 있는 한 계속 스캔알람(Alarm)AlarmManager.setExact()설정된 시각에 OS가 깨워서 실행위치 업데이트FusedLocationProviderClient.requestLocationUpdates()포그라운드 서비스 ★ 권장브로드캐스트 리시버registerReceiver()일부 “명시적” 브로드캐스트만 가능잡 스케줄러(WorkManager)WorkManager.enqueue()절전 모드·백그라운드 제약 대응 가능 비콘 백그라운드 동작 관련 설명링크https://developer.a..
1. 데이터 구성요소 iBeacon 광고 패킷(advertisement)은 아래와 같은 주요 필드로 구성됩니다.Flags일반 BLE 장치가 광고 중임을 나타내는 공통 필드ex) LE General Discoverable Mode 등Manufacturer Specific Data (Apple 사)Company ID: 0x004C (Apple Inc.)Beacon Type: 0x02 (iBeacon 식별자)Data Length: 0x15 (다음에 나오는 UUID·Major·Minor·Power의 총 길이 21바이트)UUID (16바이트)iBeacon 그룹을 구분하는 고유 ID예) E2C56DB5-DFFB-48D2-B060-D0F5A71096E0Major (2바이트)UUID 하위 그룹 식별자범위: 0 ~ 6..
✅ viewModelScope를 사용하는 상황 (📦 데이터 중심, 오래 살아야 함)예시이유✅ 타이머 기능화면 회전해도 계속 돌아야 하니까✅ API 데이터 요청 후 LiveData로 저장화면이 없어져도 데이터는 살아 있어야 하니까✅ 검색어를 입력하면 자동 추천어 받아오기ViewModel이 처리하고, 결과만 View에 넘김✅ 앱 실행 시 초기 데이터 로드 (캐시, 설정 등)화면보다 오래 살아야 함✅ 파일 다운로드 중 상태 유지화면이 닫혀도 계속 다운로드돼야 함 👉 특징: UI에 직접 영향을 안 주고, 상태 관리나 데이터 처리에 집중된 작업✅ lifecycleScope를 사용하는 상황 (🎨 UI 중심, 화면에 종속)예시이유✅ 토스트 보여주기화면이 사라졌는데 토스트 뜨면 앱 죽음 😨✅ 다이얼로그 띄우기/..
제발 코루틴으로 바꿔주세요. ㅠㅠ 제가 마주한 앱이 아래 유형의 앱이라 절망에 빠져 글을 상소문을 올립니다. 아직도 자바+ 스레드+ 콜백지옥+ 액티비티 몰빵(api 로직,데이터로직,UI로직) 형식으로 구현됨. 코루틴과 워크매니저는 아래 상황일때 적절하게 골라서 사용하세요. 상황추천 방식일반적인 백그라운드 작업✅ Coroutine (Dispatchers.IO)여러 작업을 순차 or 병렬 처리✅ Coroutine + launch {} or async {}앱이 종료되어도 작업 유지해야 함✅ WorkManagerJava 기반에서 코루틴 도입이 어려움✅ ExecutorService아주 단순한 Handler 메시지 처리⚠ HandlerThread (지양하지만 가능) ❗ Thread 직접 사용의 치명적인 문제..
안드로이드앱에서 주로 사용하는 네트워크 통신,db 기능을 기반으로 공통적으로 제가 사용하는 패턴입니다. app/├── data/│ ├── local/ │ │ ├── SampleEntity.kt // Room 엔티티│ │ ├── SampleDao.kt // Room DAO│ │ └── AppDatabase.kt // Room Database (싱글톤)│ └── remote/│ ├── ApiService.kt // Retrofit API 인터페이스 (독립적 구현)│ └── SampleData.kt // 네트워크 데이터 모델├── repository/│ └── SampleRepos..