ThLee
ThLee의 기록장
ThLee
전체 방문자
오늘
어제
  • 분류 전체보기 (137)
    • 정보처리기사 (13)
    • 알고리즘&문제 (5)
    • 인공지능 (4)
    • 자연어처리(NLP) (6)
    • 파이썬 (24)
    • 앱인벤터 강좌 (21)
    • 리눅스 (4)
    • 프로젝트 (1)
    • (App)톡분석AI (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 앱인벤터 강좌
  • 앱인벤터 무료
  • 딥러닝
  • 정보처리기사 정리
  • 어플
  • 판다스
  • 블록코딩
  • 블로그
  • 정보처리기사 실기
  • 넘파이
  • 인공지능
  • AI
  • Python
  • 앱인벤터
  • 앱인벤터 블로그
  • 정보처리기사 실기 정리
  • 정처기
  • 파이썬 넘파이
  • 정보처리기사
  • 파이썬

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ThLee

ThLee의 기록장

[톡분석AI] 배포일지 1.0.0+6
(App)톡분석AI

[톡분석AI] 배포일지 1.0.0+6

2024. 5. 15. 10:40
728x90

 

 

버전 : 1.0.0+6

배포 날짜 : 2024년 03월 25일

 

문제

 

1.0.0+6 이전 버전에서 문제가 있었다.

 

Manage_External_Storage 권한이 있어야만, 앱이 로컬 스토리지에 접근이 가능했다.(SDK 33 이상 얘기)

 

하지만, 플레이스토어에 배포를 시도하면 너무 강력하고 위험한 권한이기에 이를 사용 못하게 한다. 

 

즉, 권한을 없애면 배포는 가능하지만 SDK 33 이상부터는 내 앱을 이용 못하게 된다. 

 

SDK33은 2022년 이후 출시된 스마트폰이라고 보면 된다

 

해결 방법

결론부터 말하면 Manage_External_Storage 권한없이도 .txt 파일 읽는게 가능해졌다

 

app/src/main/kotlin/com/example/talk_analysis_for_kakao/MainActivity.kt 파일에서 Storage Access Framework(SAF)을 이용하여, 해결하였다

 

실제로 사용된 코드 일부(feat. GPT)

 

SDK 33 이상 부터는 보안 정책이 변경되어, 특정 디렉토리 및 파일을 읽으려면 SAF을 이용해야 한다. 

 

SAF을 이용하여 특정 디렉토리의 접근을 허용 받아야 하며, 난 이 디렉토리를 Documents/KakaoTalk 에 권한을 받아야 한다. (이 디렉토리는 카카오톡에서 내보내기를 하면 내보내기들을 모아둔 상위 디렉토리이다)

 

내보내기 하면 생기는 디렉토리 예시

 

다시 본론으로 돌아가서

 

처음 실험을 할 때는 디렉토리가 아닌 파일 1개씩(내보내기한 .txt 파일 1개)을 읽고, 내 앱의 내부저장소에 정보를 저장하게 하였다. 하지만, 이는 사용자가 엄청난 노가다가 필요하다는 것이다. 예를 들어, 10명의 대화 내역을 궁금하면 10번을 추가해야 하며, 10명이 대화가 갱신되면 또 10번을 추가해야 했다

 

이는 사용자 입장에서 SAF 에서 매번 왔다갔다 하는게 불편이 생길수 밖에 없다 판단하였다(개발자인 내가 직접 해봐도 개귀찮음...)

 

파일 선택이 아닌 디렉토리를 선택하게 변경을 하였고, Documents/KakaoTalk 디렉토리를 선택하면, 하위 디렉토리 중에 .txt 파일을 자동으로 찾고 내부저장소에 정보를 모두 저장하게 수정하였다. 

 

GPT 왈

 

 

결론

결론은 SDK 33 이상에서도 내 앱을 문제 없이 사용이 가능해졌다~

 

MANAGE_EXTERNAL_STORAGE 권한 ㅂㅂ 

 

 

728x90

'(App)톡분석AI' 카테고리의 다른 글

[톡분석AI] 배포 일지 (1.0.0+8)  (0) 2024.05.15
    '(App)톡분석AI' 카테고리의 다른 글
    • [톡분석AI] 배포 일지 (1.0.0+8)
    ThLee
    ThLee
    # 포트폴리오 https://thleewave.notion.site/ThLee-1fef9e057dbf40d5b7b851ab0abccf36?pvs=4 #Github - https://github.com/git-ThLee #IoT 스타트업 -Full-stack -2021.01~2021.07 -사용기술 : fluterr, arduino, node.js #코딩학원 강사 - 2019.11 ~ 진행중 - 언어 : python, 블록 코딩 - 플랫

    티스토리툴바