![](/img/trans.png)
[英]Android 6.0 Marshmallow - Service not starting on test with API 23, works fine on API 21
[英]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_STORAGE
和READ_EXTERNAL_STORAGE
權限。
當我使用API 23編譯時,我也確保調用ActivityCompat.requestPermissions()
。
當我使用API 22編譯時,我只依賴於Manifest.xml
。
如果我在/data/data/my-package-name
上觀察它,它就可以工作。
如果我在/storage/emulated/0/Pictures/Screenshots
上觀察到它,它就會失敗。
是否有人測試FileObserver
是否包含以下所有內容? :
Marshmallow
裝置 adb
或截屏)。 這似乎是Marshmallow中的一個錯誤, 請參閱此鏈接 。
即使在Nougat中也沒有解決這個問題,你可以在整個FileObserver中刪除API,因為它在大多數設備上都無法正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.