DocumentFile.createFile() 在某些 Android 10 设备上返回 null ( java.lang.IllegalArgumentException )。
其中大部分是华为设备:VOG-L29、MAR-LX1A、...
一些用户报告了这一点,但我不知道为什么。我没有遇到此问题的设备,因此无法对其进行测试。
它在大多数设备上都可以正常工作。
有没有人解决过这个问题?
Uri treeUri = <from ACTION_OPEN_DOCUMENT_TREE result> ( content://com.android.externalstorage.documents/tree/4A21-0000:Photos )
DocumentFile docFile = DocumentFile.fromTreeUri( context, treeUri );
DocumentFile resultFile = docFile.createFile( "image/jpeg", "IMG_20200327_144048.jpg" );
resultFile is null !!!
从用户收到的日志:
onActivityResult: requestCode=1,resultCode=-1,data=Intent { dat=content://com.android.externalstorage.documents/tree/4A21-0000:Photos flg=0xc3 }
DocumentsContract: Failed to create document
DocumentsContract: java.lang.IllegalArgumentException: Requested path /mnt/media_rw/4A21-0000/Photos/IMG_20200327_144048.jpg doesn't appear under [/system/media, /hw_product/hw_oem/VOG-L29/media, /system/product/media]
DocumentsContract: at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:170)
DocumentsContract: at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:140)
DocumentsContract: at android.content.ContentProviderProxy.call(ContentProviderNative.java:658)
DocumentsContract: at android.content.ContentResolver.call(ContentResolver.java:2080)
DocumentsContract: at android.provider.DocumentsContract.createDocument(DocumentsContract.java:1327)
...