Java Archos T101X 4G Android 10:MediaScannerConnection.scanFile删除我添加的文件

Java Archos T101X 4G Android 10:MediaScannerConnection.scanFile删除我添加的文件,java,android,file,storage,android-10.0,Java,Android,File,Storage,Android 10.0,拍照时,我使用以下方法将图像保存在外部文件夹中的DCIM/Camera文件夹中: 方法1: File fImage = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) + "/Camera/image.jpg"); ContentResolver resolver = activity.getContentResolver(); Uri imageUri =

拍照时,我使用以下方法将图像保存在外部文件夹中的DCIM/Camera文件夹中:

方法1:

File fImage = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) + "/Camera/image.jpg");
ContentResolver resolver = activity.getContentResolver();
Uri imageUri = FileProvider.getUriForFile(activity, BuildConfig.APPLICATION_ID + ".provider", fImage);
if(imageUri != null) {
    OutputStream fos = resolver.openOutputStream(imageUri);
    if(fos != null) {
        fos.write(bytes, 0, bytes.length);
        fos.flush();
        fos.close();        
        new SingleMediaScanner(activity, fImage);
     }
}
File fImage = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) + "/Camera/image.jpg");
OutputStream outputStream=null;
try {
    outputStream=new FileOutputStream(fImage);
    outputStream.write(bytes);
}finally {
    if (outputStream != null)
         outputStream.close();
    new SingleMediaScanner(activity, fImage);
}
方法2:

File fImage = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) + "/Camera/image.jpg");
ContentResolver resolver = activity.getContentResolver();
Uri imageUri = FileProvider.getUriForFile(activity, BuildConfig.APPLICATION_ID + ".provider", fImage);
if(imageUri != null) {
    OutputStream fos = resolver.openOutputStream(imageUri);
    if(fos != null) {
        fos.write(bytes, 0, bytes.length);
        fos.flush();
        fos.close();        
        new SingleMediaScanner(activity, fImage);
     }
}
File fImage = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) + "/Camera/image.jpg");
OutputStream outputStream=null;
try {
    outputStream=new FileOutputStream(fImage);
    outputStream.write(bytes);
}finally {
    if (outputStream != null)
         outputStream.close();
    new SingleMediaScanner(activity, fImage);
}
我的文件位于平板电脑上所需的文件夹中

我的提供者包含以下内容:

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path name="external_files" path="."/>
</paths>
扫描后,我创建的文件将被删除。onScanCompleted中uri的值为null

你知道为什么吗

编辑:
我在三星Tab a上进行了测试,没有问题。但是在Archos T101X4G上它不起作用。

最后,我认为问题只来自于Archos平板电脑:我刚刚用WhatsApp进行了测试,WhatsApp中下载的图像也消失了…

@blackapps我在函数中添加了缺少的mediascanner调用行。
if(fos!=null)
如果fos==null,您可以显示一个Toast,以便用户知道出了问题。@blackapps是的,但在我的情况下没有问题,该文件确实是在平板电脑上创建的。我通过将平板电脑连接到电脑来查看它。但是如果我调用SingleMediaScanner,文件就会消失。@blackapps我添加了一行:new SingleMediaScanner(activity,fImage);测试。这里不会发生这种事。很好。