본문 바로가기

Kotlin/안드로이드 공부

Content Provider

728x90

안드로이드  4대 컴포넌트

액티비티 : 화면

콘텐츠 프로바이더: DB, 파일, 네트워크의 데이터를 다른 앱에 공유

브로드캐스트 리시버 : 앱이나 기기가 발송하는 방송 수신 (ex - 문자)

서비스 : 화면이 없는 백그라운드 작업에 용이

 

 

 

<프로바이더로 사진 정보 갖고오기>

1. 외부 저장소 권한 앱에 부여

2. 위험권한이므로 사용자에게 허용받기

3. contentResolver객체를 이용하여 데이터를 cursor 객체로 가지고 온다.

 

 

 

1. 프로바이더로 기기의 사진 경로 얻기

: contentResolver객체의 query(어떤 데이터(ex - EXTERNAL_CONTENT_URI), 어떤 항목의 데이터, 데이터 가져올 조건(전체는 null), 세번째 인자와 조합하여 조건 지정, 정렬 방법 지정)

 

// 모든 사진 가져오기

private fun getAllPhotos(){
val cursor = contentResolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,null,null,null,
MediaStore.Images.ImageColumns.DATE_TAKEN+"DESC")
}

 

와 여기서 오류가 왜 나지? 했더니 " DESC" 로 써야했다!

 

2. 매니페스트에 외부 저장소 읽기 권한 추가

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

 

3. 권한 확인

4. 권한 요청

5. 사용 권한 요청 응답 처리

6. 앱 실행

 

 

 

 

 

 

 

 

'Kotlin > 안드로이드 공부' 카테고리의 다른 글

toast 대신 crouton  (0) 2020.03.20
프래그먼트, Glide 라이브러리  (0) 2020.03.13
커스텀 뷰, onDraw()  (0) 2020.03.13
오류 삽질  (0) 2020.03.13
액티비티의 생명주기  (0) 2020.03.10