마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

파일 업로드 이벤트 감지 및 파일이름 가져오는 방법 질문드립니다.

0 추천
안녕하세요?

저는 안드로이드 초보 개발자입니다.

문제해결과 관련해서 여러방향으로 방법을 찾아보았으나

더 이상 해결방법을 찾기 어려워서 이렇게 글로 질문을 올립니다.

 

현재 저는 여러 어플리케이션(브라우저앱등)에서 파일을 업로드하면

해당 이벤트를 감지하고 파일명 추출하는 기능을 구현 중 입니다.

개발중인 안드로이드 플랫폼 버전은 9.0입니다.

 

# 질문 내용은 다음과 같습니다.

 

만약 특정 어플리케이션(B)에서 파일을 첨부하여 업로드하려는 경우

제가 구현하려는 백그라운드 어플리케이션(A)이

(1) 업로드 이벤트를 실행하는 어플리케이션(B)의 '업로드 이벤트' 감지하고

(2) '선택된 파일명'을 가져오고 싶습니다.

 

관련되어서 참고할 안드로이드 API 또는 키워드가 있다면 가르침 부탁드립니다.
amiro (150 포인트) 님이 2020년 6월 25일 질문

2개의 답변

0 추천
 
채택된 답변
아래 API 만 보면 가져올 수 있을 거 같은데요.

앱이 자신의 폴더에서 파일을 처리하는 경우 접근이 안되겠지만, Download나 다른 public 폴더의 경우에는 이벤트를 가져올 수 있을거 같네요(만들어보지 않아서)..  

https://developer.android.com/reference/kotlin/android/os/FileObserver

서비스로 FileObserver 올려서 특정 폴더를 observing 해서 테스트해 보세요..
mcsong (44,040 포인트) 님이 2020년 6월 26일 답변
amiro님이 2020년 6월 29일 채택됨
답변해주셔서 감사드립니다!

말씀주신대로 FileObserver API를 참고하여
파일 이벤트가 감지되는지 테스트 해보았습니다.

이벤트 발생을 모니터링할 폴더 경로는 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)로 하였습니다.

다른 어플리케이션에서 파일을 업로드할때 업로드할 파일을 선택하는 경우에
다음과 같은 이벤트를 확인할 수 있었습니다.

1)이벤트 타입
- OPEN(파일 또는 디렉토리가 열렸을때 발생한다.)
- CLOSE_NOWRITE(읽기 전용으로 열려있는 특정 파일 또는 디렉트로리를 닫았을 때 발생하는 이벤트 타입.)

2)확인되는 경로, 파일명
- /storage/emulated/0/Download/test.pdf
0 추천
없습니다. 보안문제로 다른 어플 정보를 시스템 어플이 아닌 이상 가져오지 못 하게 되어 있습니다.
익명사용자 님이 2020년 6월 25일 답변
질문에 관심을 가져주시고 답변 주셔서 감사합니다.
mcsong님께서 알려주신대로 FileObserver API를 이용하니 다른 어플리케이션에서 발생되는 파일 관련 이벤트 정보를 가져올 수 있었습니다.
...