일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- TwomonUSB
- 셀룰로오스-g-폴리락타이드 공중합체
- 스레드 #코루틴
- json 저장
- var 와 val
- compse state
- livedata
- 토글 험수
- 코루틴 job
- compse collectAsState
- bluetoothmanager
- #큐구조 #큐다운로드
- 라이브데이터 postValue
- 안드로이드 스튜디오 애뮬레이터
- 코틀린 이미지저장 #파일저장
- 플라스틱 생분해
- 안드로이드 sms
- Room 데이터베이스 업데이트
- 안드로이드 비콘
- 안드로이드 mvvm
- 일회용 플라스틱
- apk이름변경
- 안드로이드스튜디오 jdk
- 1회용 플라스틱컵
- 1회용컵
- viewmodelscope
- TowmonUSB 연결오류
- withContext
- 코틀린 트리거 버튼
- 생분해성 플라스틱
- Today
- Total
목록전체 글 (48)
EnjoyLife
신규 Android 앱을 만들 때는 JDK 17을 사용하는 것을 권장드립니다. 그 이유를 정리해 보면 다음과 같습니다.LTS(장기 지원) 안정성JDK 17은 2021년 9월에 나온 LTS 버전으로, 버그 픽스·보안 업데이트가 최소 2029년까지 지원됩니다.JDK 21 역시 LTS이지만 출시(2023년 9월)가 비교적 최근이라, Android 생태계 전반에서 아직 검증·호환성 테스트가 충분히 이뤄지지 않았습니다.Android Gradle Plugin(AGP) 호환성현 시점(2025년 기준) Android Studio·AGP 공식 문서 상으로는 JDK 17까지 안정적으로 지원됩니다.JDK 21을 쓰려면 Gradle 8.5 이상, AGP 8.5 이상으로 모두 업그레이드해야 하는데, 일부 서드파티 플러그인이나 ..
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문자를 다 읽을수 있다. 링크를 들어가 정책내용을 보면 아래 부분에 명확하게 명시해 줬다. " 그 권한과 관련된 핵심 기기 기능을 위한 사용자의 기본 핸들러로 등록되어야 합니다. 예를 들어 통화 관련 권한에 액세스하려면 앱이 예외 사례를 충족하지 않는 한, 앱을 사용자의 기본 휴대전화 핸들러 또는 어시스턴트 핸들러로 등록해야 합니다." " 앱은 ..
비콘(Beacon) 스캔 기능을 Android에서 직접 구현할 때 기본이 되는 주요 BLE(Bluetooth Low Energy) API는 다음과 같습니다:BluetoothManager & BluetoothAdapterBluetoothManager를 통해 시스템 블루투스 서비스(BLUETOOTH_SERVICE)를 얻고,BluetoothAdapter로 디바이스의 블루투스 상태(on/off) 확인 및 BLE 스캐너 객체를 가져옵니다.kotlin복사편집val btManager = getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager val btAdapter = btManager.adapter BluetoothLeScannerBluetoothAdapt..
획득 방식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..
기능 예시왜 코루틴+Job이 필요한가요?⏱ 타이머 기능중간에 멈추거나 재시작할 수 있어야 해서📡 API 요청 중 사용자가 뒤로 가면 중단Job으로 취소 가능해야 함📥 파일 다운로드/업로드 진행 관리중간에 job.cancel()로 멈출 수 있어야 함🧹 자동 저장 / 자동 백업주기적인 반복 작업 (delay + 반복 + 취소)⏳ ProgressBar와 연동된 딜레이 애니메이션애니메이션을 멈출 수 있어야 함🎮 게임에서 일정 시간마다 이벤트 발생반복 실행 + 일시중지 가능해야 함🔍 입력 중 실시간 검색 (디바운싱)이전 Job을 취소하고 새 검색 시작🔕 알림 예약 후 조건 만족 시 취소예약된 코루틴 취소해야 함 🔧 왜 그냥 코루틴 만 쓰지 않고 Job까지 써야 하나요?상황Job이 필요한 이유작업 중에..