반응형
Greensky0026
삽질러의 대환장 공사판
Greensky0026
전체 방문자
오늘
어제
  • 분류 전체보기 (241)
    • Language (56)
      • JAVA (13)
      • Swift (38)
      • Kotlin (4)
      • Dart (0)
      • PHP (0)
      • JavaScript (1)
    • IDE & Framework (92)
      • Spring (10)
      • Android (48)
      • iOS (8)
      • NodeJS (1)
      • CodeIgniter (3)
      • Flutter (1)
      • 분류중 (18)
    • Infra (8)
    • Database (12)
    • VCS (4)
    • Debug Log (34)
      • java (7)
      • swift (3)
      • Android (9)
      • Web (7)
      • 삽질기 (7)
    • Others (19)
      • 코딩테스트 풀이 (0)
      • IT 이야기 (18)
    • 쉼터 (2)
    • 개발공부 (14)
      • Network (1)
      • 자료구조와 알고리즘 (2)
      • Code design (8)
      • ETC (1)
      • 아카이브 (1)

블로그 메뉴

    공지사항

    • 프로그래머스 코딩 테스트 관련글 비공개 처리

    인기 글

    태그

    • 프로그래머스
    • kotlin
    • map
    • Java
    • 프로그래밍
    • Android
    • ios
    • xcode
    • 타입
    • level1
    • swift
    • 코딩테스트
    • swfit
    • 공부
    • IT
    • reduce
    • 개발
    • JSP
    • 예제
    • 구축

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    Greensky0026

    삽질러의 대환장 공사판

    [Kotlin] ContentResolver 기본 : 통화내역(Call log) 조회
    IDE & Framework/Android

    [Kotlin] ContentResolver 기본 : 통화내역(Call log) 조회

    2021. 11. 2. 23:18
    반응형

    1ContentResolver란?

    ContentProvider가 uri로 접근경로를 열어 제공하는 데이터들을 조회하는 Query입니다.쉽게 생각해서 content uri에 db가 존재하고, 그걸 조회하는 qeury를 작성해 contentResolver로 실행한다고 볼 수 있습니다.

     

    https://developer.android.com/guide/topics/providers/content-provider-basics

     

    val resolver: ContentResolver = this.contentResolver
            val callLogUri = CallLog.Calls.CONTENT_URI
            var cursor: Cursor?
    
            try{
                cursor = resolver.query(callLogUri, null, null, null, null)
                if (cursor != null) {
                    var maxcount = 2
                    while (cursor.moveToNext()) {
                        if (--maxcount < 0) {
                            break
                        }
                        Log.i("Test_Log","cursor count == $maxcount =================================================")
                        for (i in 0..cursor.columnCount-1) {
                            val columnName = cursor.getColumnName(i)
                            val cursorIndex = cursor.getColumnIndex(columnName)
                            Log.i("Test_Log","cursor - name == $columnName // data = ${cursor.getString(cursorIndex)}")
                        }
                    }
                }
            } catch (e: Exception){
                e.printStackTrace()
            }

    위와같이 사용하면 최근 3건의 통화목록을 로그로 출력하게 됩니다.

    ContentResolver.query()의 두번째 매개변수 projection은 null을 입력하게 되면 모든 속성에 대해 출력하게 되니,

    해당 Content Provider가 어떤 속성과 값을 가지고 있는지 파악하기 좋습니다.

     

     

    속성을 파악해두면 좋은 점

    - 속성명을 projection에 그대로 입력해 원하는 값을 쉽게 가져올 수 있다.

            var projection =
                arrayOf(
                    "cdnip_number",
                    "number",
                    "_id"
                )

        

     

     

     


    참고 사이트

    https://developer.android.com/guide/topics/providers/content-provider-basics

     

    콘텐츠 제공자 기본 사항  |  Android 개발자  |  Android Developers

    콘텐츠 제공자 기본 사항 콘텐츠 제공자는 중앙 저장소로의 데이터 액세스를 관리합니다. 제공자는 Android 애플리케이션의 일부이며, 대개 데이터 작업을 위한 고유의 UI를 제공합니다. 그러나

    developer.android.com

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    반응형
    저작자표시 비영리 (새창열림)

    'IDE & Framework > Android' 카테고리의 다른 글

    [Kotlin] WorkManager 사용해보기  (0) 2021.11.09
    [Kotiln] 실행아이콘이 없는, 런처가 없는 앱 만들기  (0) 2021.11.02
    AAC MVVM - (3)AAC ViewModel + ViewBinding  (0) 2021.10.17
    AAC MVVM - (2)Data binding  (0) 2021.10.17
    AAC MVVM - (1)Live Data  (0) 2021.10.17
      'IDE & Framework/Android' 카테고리의 다른 글
      • [Kotlin] WorkManager 사용해보기
      • [Kotiln] 실행아이콘이 없는, 런처가 없는 앱 만들기
      • AAC MVVM - (3)AAC ViewModel + ViewBinding
      • AAC MVVM - (2)Data binding
      Greensky0026
      Greensky0026
      점이 모여 선이 된다. 내 삽질도 언젠간 거대한 지하 도시가 되겠지!

      티스토리툴바