0

외부 SD 카드를 포함한 파일 시스템을 광범위하게 사용하는 앱이 있습니다.Android 저장소 액세스 프레임 워크 및 직접 파일 액세스 사용하기

현재 파일 API를 사용하여 파일을 생성/삭제/나열하지만 새로운 Android 저장 장치 액세스 프레임 워크를 사용하고 싶습니다.

문제는 설치 기반의 거의 60 %가 여전히 JB에 있으며 그 아래에 새로운 Intent.ACTION_OPEN_DOCUMENT_TREE이 필요하다는 것입니다. 나는 그것을 구현하는 방법에 대해 확실히 모른다.

내 애플 리케이션에서 MyFile과 같은 공통 인터페이스를 작성한 다음 플랫폼 버전에 따라 적절한 API를 사용한다고 생각했지만 이미 라이브러리가 없으면 너무 많이 사용됩니다.

다른 사람들이하고있는 것 :이 상황을 어떻게 관리합니까?

+0

이 라이브러리가 도움이되기를 바랍니다 .https : //github.com/bartwell/ExFilePicker_ – Rick

+1

[android-simple-storage] (https://github.com/sromku/android-simple-storage) 및 [G -Rex] (https://github.com/Natural-Being/G-Rex) – mmlooloo

답변

0

작업을 추상화하십시오.

여러 곳에서 File을 사용하는 경우 먼저 FileSystem과 같은 인터페이스의 추상 클래스로 바꾸고 File과 동일한 기능을 제공하지만 구현 세부 정보는 숨기십시오. File에 대한 모든 작업은 제거되어야하며 예를 들어 NativeFileSystem이라는 이름의 TheFile 인터페이스 구현에 배치해야합니다. open/delete/rename/create와 같은 필요한 모든 기능을 구현하십시오.

예를 들어 Application 클래스에서 FileSystem을 생성하려면 factory 함수를 사용하십시오. 이것은 나중에 작업을 위해 만들어진 실제 수업이 무엇인지 결정하는 장소입니다.

구현 세부 정보를 숨기고 응용 프로그램이 작동하는지 테스트 할 때 SAFFileSystem이라는 새 구현을 만들고 필요한 기능을 구현할 수 있지만 Storage Access Framework에서 허용하는 방식대로 구현할 수 있습니다.

주 스레드의 파일에서 실행할 수있는 일부 메소드는 비동기식이 될 수 있습니다. 이는 SAF가 대화 상자를 표시하고 사용자에게 확인을 요청할 수 있기 때문입니다. 따라서 메소드 호출과 관련하여 앱에 약간의 재 작업이있을 수 있습니다.

희망이 있습니다.

관련 문제