簡體   English   中英

FileObserver不適用於Android 6.0 Marshmallow(API 23)中的外部存儲

[英]FileObserver does not work on external storage in Android 6.0 Marshmallow (API 23)

我有一個應用程序,使用FileObserver觀察外部存儲上的公共目錄。 它在Lollipop設備上運行良好。 我想添加對Marshmallow支持,所以我用它設置了一個Nexus 9平板電腦。

在Marshmallow設備上,它失敗了,在Lollipop設備上它沒關系。 在Marshmallow設備上, FileObserver不會對由其他進程引起的文件系統事件做出反應。 例如,截取屏幕截圖,通過adb shell創建文件。 如果文件是由我的應用程序創建的,它可以正常工作。

Marshmallow ,我要求Manifest.xml提供WRITE_EXTERNAL_STORAGEREAD_EXTERNAL_STORAGE權限。

當我使用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或截屏)。

這似乎是Marshmallow中的一個錯誤, 請參閱此鏈接

即使在Nougat中也沒有解決這個問題,你可以在整個FileObserver中刪除API,因為它在大多數設備上都無法正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM