我在Android 10以上创建文件到共享下载目录,按照文档说是不需要任何权限的但是我在创建文件时,一直报Operation not permitted异常。
后来发现是我的文件名中使用了特殊字符导致创建不成功(TOP 10 - top 10 beautiful girl in the world 2023 January | top 10 beautiful girls | beautiful girls | top ten.mp4)
许多的字符都属于公共空间文件的不合法字符(如上图),但是在私有空间是没有这个问题的。可能是由于在公有空间和私有空间访问走的是两套机制。公有空间会走MediaStore,私有空间并不会。
我们在android 12系统的手机上,手动创建文件时,文件名也不能包含这些字符。android 10 之前就没有发现这个问题。
所以问题的解决方法,修改文件名,避免特殊字符