我有一个应用程序可以观察外部存储上的公共目录FileObserver。它在Lollipop设备上运行良好。我想添加对 的支持Marshmallow,所以我用它设置了一个 Nexus 9 平板电脑。
在 Marshmallow 设备上,它失败了,在 Lollipop 设备上它没问题。在 Marshmallow 设备上,FileObserver不会对其他进程引起的文件系统事件做出反应。例如截屏,通过adbshell 创建文件。如果文件是由我的应用程序创建的,它工作正常。
在 上Marshmallow,我向 请求WRITE_EXTERNAL_STORAGE和READ_EXTERNAL_STORAGE权限Manifest.xml。
当我使用 API 23 进行编译时,我还要确保调用ActivityCompat.requestPermissions().
当我使用 API 22 编译时,我只依赖Manifest.xml.
如果我在/data/data/my-package-name.
如果我在/storage/emulated/0/Pictures/Screenshots.
有没有人FileObserver考虑到以下所有因素进行测试?:
Marshmallow设备- API 23 和 API 22?
- 外置储存
- 由观察应用程序以外的其他进程创建的文件(例如
adb或截屏)。