안드로이드 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 |