728x90
반응형

2025/02 48

21. WorkManager 활용 예시

WorkManagerAPI 14 이상 모든 버전에서 동작Doze 모드에서도 실행 가능 (Android 6.0 이상)자동으로 재시작 지원딜레이 및 주기적 작업 가능Foreground Service 없이도 백그라운드 작업 가능장기 실행 작업(데이터 동기화, 파일 업로드)에 적합한 솔루션 예제WorkManager Gradle 설정dependencies { implementation "androidx.work:work-runtime:2.7.1"} Worker 클래스 생성Worker를 상속받아 작업 정의class SyncWorker(context: Context, params: WorkerParameters) : Worker(context, params) { override fun doWork(): R..

20. SufaceView를 사용한 MediaPlayer 사용

MediaPlayer로컬 또는 원격(인터넷) 미디어 파일 재생 가능오디오 및 비디오 재생 가능상태 변화(State) 관리 필요SurfaceVIew, TextureView, VideoView를 사용하여 비디오 렌더링 가능재생, 일시 정지, 정지, 시크(Seek) 등의 기능 제공 MediaPlayer 상태 흐름Idle → Initialized → Preparing → Prepared → Started → Paused → Stopped → Released상태설명IdleMediaPlayer 객체가 생성된 초기 상태InitializedsetDataSource()로 재생할 파일 설정 후 상태PreparingprepareAsync() 호출 후 미디어 준비 중Prepared미디어 준비 완료 (onPrepared() 호..

19. 브로드캐스트 사용 (알람 등록하기, 메시지 전달하기)

브로드캐스트안드로이드 시스템에서 특정 이벤트(배터리 부족, 네트워크 변경, 기기 부팅 완료)가 발생하면 이를 모든 앱 또는 특정 앱에 알림BroadcastReceiver를 사용하여 이벤트 가지 후 특정 작업 수행 가능시스템 브로드캐스트와 앱 내부 브로드캐스트 두 가지 방식이 있음알람 등록하기 (AlarmManager + BroadcastReceiver)10초 후 알람이 울리도록 설정하고, 알람 발생 시 Toast 메시지를 표시 BroadcastReceiver 생성class AlarmReceiver : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { Toast.makeText(context..

18. Android의 주요 데이터 저장소 방식

주요 데이터 저장소 방식각 방식은 데이터의 성격과 용도에 따라 적절히 선택해야한다.SharedPreferencesSQLiteRoom DBContentProvider저장 방식설명사용 목적SharedPreferences Key-Value 형태의 간단한 데이터 저장 설정 값, 사용자 선호 데이터SQLite SQL(데이터베이스 언어) 기반의 로컬 데이터베이스 구조화된 데이터 저장 (예: 사용자 정보)Room DB SQLite를 더 쉽게 사용하기 위한 라이브러리 MVVM 패턴 기반 데이터 관리, 대량의 데이터 처리ContentProvider 앱 간 데이터 공유 및 접근 제어 다른 앱과 데이터 공유 (예: 연락처)SharedPreferences (간단한 데이터 저장)Key-Value 형태의 데이터 저장내부 저장소(..

Geocoder란?

Geocoder란?Geocoder는 위도(latitude), 경도(longitude) 정보를 주소(지명, 도로명, 행정구역 등)로 변환해 주는 안드로이드 내장 클래스반대로 주소를 위조/경도로 변환(Geocoding)도 가능 기본 개념Geocoder는 네트워크를 사용해 정보를 가져온다. 인터넷이 필요함 (오프라인에서는 동작 X)Google Play Services나 기상청 API를 이용해 내부적으로 데이터를 가져온다. 위도/경도를 주소로 변환 (Reverse Geocoding)val geocoder = Geocoder(this, Locale.getDefault())val latitude = 37.5665val longitude = 126.9780val addresses: List? = geocoder.ge..

FusedLocationProviderClient란?

Google Play 서비스의 위치 API를 사용해 사용자의 현재 위치를 가져올 수 있도록 도와주는 위치 서비스 객체GPS, Wi-Fi, 셀룰러 네트워크 등 다양한 수단을 조합해서 가장 효율적인 방식으로 사용자의 위치를 자동으로 결정 특징배터리 절약기존 방식인 LocationManger를 사용하는 방식보다 전력 소모가 적음Google이 자동으로 최적의 위치 제공 방식을 선택해준다.정확한 위치 제공GPS, Wi-Fi, 셀룰러 네트워크 등 여러 기술을 자동으로 조합하여 가장 정확한 위치 정보를 가져옴비동기 방식백그라운드에서도 위치 요청 가능콜백(LocationCallback)을 통해 위치 업데이트를 받는다onLocationResult()에서 위치 데이터를 처리 사용 방법객체 생성private val fuse..

LocationRequest란?

LocationRequestAndroid에서 위치 정보를 요청할 때 사용하는 설정 객체얼마나 자주, 어떤 방식으로 요청할지 설정할 수 있다.이전 방식 (Android 12 (API 31) 이하)현재의 LocationRequest.Builder()가 아닌 LocationRequest.create() 사용해 위치 요청을 설정하는 객체 생성 역할을 했다. 예시val locationRequest = LocationRequest.create().apply { priority = LocationRequest.PRIORITY_HIGH_ACCURACY // 정확도가 올라가지만 배터리 소모가 커지는 옵션 interval = 10000 // 10초마다 위치 업데이트 fastestInterval = 500..

6. 날씨 API 연동 (기상청 API)

기상청 API 선별기상청 API를 사용하기 위해서 먼저 어떤 데이터가 필요한 지 특정해야 한다만들고자 하는 날씨앱에는 현재, 단기예보, 주간예보 등이 필요.먼저 현재 위치에 맞는 현재 날씨를 가져오기 위해서 기상청_단기예보(구)_동네예보 조회서비스를 선택기상청_단기예보(구)_동네예보 조회서비스는 현재 날씨 정보와 단기 예보(6시간 이내)를 제공 기상청_단기예보 ((구)_동네예보) 조회서비스초단기실황, 초단기예보, 단기((구)동네)예보, 예보버전 정보를 조회하는 서비스입니다. 초단기실황정보는 예보 구역에 대한 대표 AWS 관측값을, 초단기예보는 예보시점부터 6시간까지의 예보를,www.data.go.krAPI 키 발급 절차공공데이터포털 로그인 오픈 API 활용신청이와 같이 발급받은 인증키(Decoding)를..

5. 위치 정보 연동하기

앱의 메인홈화면에 사용될 현 위치 정보를 가져오고 표시하도록 작업을 진행하려고 한다.아래와 같이 단계별로 진행할 예정위치 정보 연동을 위한 권한 설정FusedLocationProvider를 이용한 위치 정보 가져오기, build.gradle 의존성 추가코드 수정 1. 권한 설정 (AndroidManifest.xml) // 정밀 위치 정보 (GPS) // 대략적인 위치 정보 (네트워크 기반)권한을 AndroidManifest.xml에 추가  2. 위치 정보 가져오기 (FusedLocationProvider 사용)의존성 추가 (build.gradle)dependencies { implementation 'com.google.android.gms:play-services-location:21.0.1'}의..

안드로이드 에뮬레이터 위치 정보 초기화 이슈

에뮬레이터 위치 정보 관련 이슈진행 중 에뮬레이터 위치 정보가 초기화 되어있지 않음을 확인하여 수정했다. 내용위치 연동 서비스를 확인하기 위해 에뮬레이터를 실행했지만 현 위치 정보가 갱신되지 않았고 "위치 정보를 가져올 수 없습니다." 텍스트가 표시되고 있었다. 확인 방법에뮬레이터의 현재 Location 정보를 확인에뮬레이터의 현재 위치가 세팅되어 있지 않았다.저 구글맵의 지도 모습도 흰색으로만 표시되었고, 도시 위치 검색도 먹통인 상태였다. 해결방법File 탭  > Settings 창 실행  > SDK Tools Tab 검색Android Emulator 부분 체크하여 적용 및 설치검색창에 Seoul을 검색하고 세팅을 한 모습이다.

728x90
반응형