이것은 Android Lollipop 5.0 이상에만 해당됩니다.Android OTG에서 파일을 작성한 후 USB 장치를 "안전하게 제거"할 수 있습니까?
USB를 통해 파일 시스템으로 마운트 할 수있는 맞춤형 장치가 있습니다. 필자는 사용자가 OTG를 사용하여 장치를 탑재 할 수있는 Android 앱을 작성한 후 장치의 파일을 업데이트합니다. 이 부분은 매력처럼 작동합니다 (DocumentFile이 얼마나 끔찍한 지). 내가 알아낼 수없는 것은 장치를 분리하거나 안전하게 제거하는 방법 또는 안전하게 플러그를 뽑을 수 있음을 사용자에게 알리는 방법입니다.
ACTION_MEMORY_CARD_SETTINGS (의도적 인 ACTION_MEMORY_CARD_SETTINGS)으로 활동을 시작하는 것이 가장 좋습니다. 그러나 이는 일반적인 사용자의 불이행 가능성은 물론 시각적으로도 끔찍한 사용자 경험입니다. (저장소 관리 페이지가 열릴 때 연결이 끊어집니다.)
누구나 프로그래밍 방식으로 USB 장치에 대한 쓰기를 플러시하는 방법을 알고 있습니까? 또는 파일, 장치 및 기타 장치에 대해 보류중인 쓰기가 있는지 여부를 확인하려면? 또는 악취가 나는 OTG USB 장치를 안전하게 제거하는 방법은 무엇입니까?
(전 Lollipop 전에 마운트 된 USB 장치가 실제 파일 시스템 인 경우 File
일 때 sync()
일 수 있지만 그 중요한 기능은 분명히 손실됩니다.) 다시 가져올 방법이 있다면, . 그것을 알고 사랑 D)
나는 누군가가 더 나은 대답을 줄 수 있도록 대답을 삭제했습니다. 'IMountService'는 StorageManager'/ core/java/android/os/storage/StorageManager.java' (https://android.googlesource.com/platform/frameworks/base/+/a45746e/core/java/)를 사용하여 액세스 할 수 있습니다. 안드로이드/os/storage/StorageManager.java) http://www.programcreek.com/java-api-examples/index.php?api=android.os.storage.StorageManager ** 예제 5 **는'mountMedia()'함수를 사용하지만 StorageManager를 다시 사용하면 권한 문제가 다시 발생할 가능성이 높습니다 ... –
http://www.stackoverflow.com/questions/24783344/how-unmount-programmatically-usb- drive-in-android-4-2. 'IMountService'에서 라이브러리를 사용하고 unmountVolume()을 사용합니다. 분명히 추가 된 라이브러리는 사용 권한 문제를 무시합니다 ...이 외에도 AppStore에는 많은 '마운트 해제 USB 응용 프로그램'이 있으며 거의 모두 루트를 필요로합니다 ... –