일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 토글 험수
- 안드로이드 sms
- 일회용 플라스틱
- compse state
- 코루틴 job
- bluetoothmanager
- 셀룰로오스-g-폴리락타이드 공중합체
- 플라스틱 생분해
- TowmonUSB 연결오류
- var 와 val
- 스레드 #코루틴
- 안드로이드 비콘
- viewmodelscope
- 1회용컵
- Room 데이터베이스 업데이트
- 생분해성 플라스틱
- livedata
- 1회용 플라스틱컵
- 라이브데이터 postValue
- compse collectAsState
- withContext
- 데이터바인딩
- #큐구조 #큐다운로드
- 코틀린 트리거 버튼
- 안드로이드 스튜디오 애뮬레이터
- 안드로이드 mvvm
- json 저장
- 코틀린 이미지저장 #파일저장
- TwomonUSB
- apk이름변경
- Today
- Total
목록분류 전체보기 (47)
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문자를 다 읽을수 있다. 링크를 들어가 정책내용을 보면 아래 부분에 명확하게 명시해 줬다. " 그 권한과 관련된 핵심 기기 기능을 위한 사용자의 기본 핸들러로 등록되어야 합니다. 예를 들어 통화 관련 권한에 액세스하려면 앱이 예외 사례를 충족하지 않는 한, 앱을 사용자의 기본 휴대전화 핸들러 또는 어시스턴트 핸들러로 등록해야 합니다." " 앱은 ..
비콘(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이 필요한 이유작업 중에..
✅ viewModelScope를 사용하는 상황 (📦 데이터 중심, 오래 살아야 함)예시이유✅ 타이머 기능화면 회전해도 계속 돌아야 하니까✅ API 데이터 요청 후 LiveData로 저장화면이 없어져도 데이터는 살아 있어야 하니까✅ 검색어를 입력하면 자동 추천어 받아오기ViewModel이 처리하고, 결과만 View에 넘김✅ 앱 실행 시 초기 데이터 로드 (캐시, 설정 등)화면보다 오래 살아야 함✅ 파일 다운로드 중 상태 유지화면이 닫혀도 계속 다운로드돼야 함 👉 특징: UI에 직접 영향을 안 주고, 상태 관리나 데이터 처리에 집중된 작업✅ lifecycleScope를 사용하는 상황 (🎨 UI 중심, 화면에 종속)예시이유✅ 토스트 보여주기화면이 사라졌는데 토스트 뜨면 앱 죽음 😨✅ 다이얼로그 띄우기/..