2012-04-18 2 views
0

/mnt/sdcard/X의 특정 디렉토리에 FileObserver를 연결하고 그 자손을 재귀 적으로 연결했습니다. 갤러리 응용 프로그램에서 말하는 전화 자체에서이 디렉토리의 내용을 수정하면 FileObserver의 onEvent()가 올바르게 호출되고 모든 것이 올바르게 작동합니다.안드로이드 FileObserver가 USB 대용량 스토리지 모드에서 onEvent를 호출하지 않습니다.

USB를 통해 컴퓨터에 연결하고 대용량 저장 모드로 전환하면 컴퓨터를 통해 동일한 디렉터리로 변경 한 모든 내용이 FileObserver의 이벤트로 변환되지 않습니다. USB 대용량 저장 장치에서 작동하지 않는 FileObserver에 대한 제한 사항이 있습니까?

'adb push xx/mnt/sdcard/X/xx'를 시도했는데이 변경 사항도 올바르게 기록됩니다.

답변

1

FileObserver가 USB 대용량 저장 장치에서 작동하지 않는다는 제한이 있습니까? 이 USB 대용량 저장 장치 (안드로이드 1.x에서/2.x에서)를 통해 장착 될 때 안드로이드

아무것도 외부 저장 장치와 함께 작동하지 않습니다. 외부 저장소는 탑재 된 OS에서만 독점적으로 소유합니다. 저장소가 마운트되어있는 동안에는 FileObserver 이벤트가 발생하지 않습니다.

안드로이드 3.0 대신 USB 대용량 저장 장치의 미디어 전송 프로토콜 (MTP)을 사용하고, 그래서 FileObserver 다른 OS가 해당 스토리지에 액세스 할 수있는 동안에도, 안드로이드의 최신 버전에 외부 저장 장치와 함께 작동합니다.

+0

좋습니다. USB 저장 장치가 꺼지면 MEDIA_MOUNTED가 (가) 브로드 캐스트라고 가정합니다. 맞습니까? –

+0

@NarendraAcharya : 예, AFAIK. – CommonsWare