Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓10在插入媒体时如何更改当前时间的日期?_Android_Android 10.0 - Fatal编程技术网

Android 安卓10在插入媒体时如何更改当前时间的日期?

Android 安卓10在插入媒体时如何更改当前时间的日期?,android,android-10.0,Android,Android 10.0,我在媒体商店中插入了一段视频,但在插入我的图库后,排序顺序错误,因为所用的日期不是当前时间,系统使用视频元数据中创建的时间。如何将媒体存储或元数据中的日期更改为当前时间 ExiFinInterface可以编辑元数据中创建的日期,但它仅支持JPEG 这是我用来插入视频的代码 ContentValues contentvalues = new ContentValues(); contentvalues.put(MediaStore.Video.VideoColumn

我在媒体商店中插入了一段视频,但在插入我的图库后,排序顺序错误,因为所用的日期不是当前时间,系统使用视频元数据中创建的时间。如何将媒体存储或元数据中的日期更改为当前时间

ExiFinInterface可以编辑元数据中创建的日期,但它仅支持JPEG

这是我用来插入视频的代码

        ContentValues contentvalues = new ContentValues();
        contentvalues.put(MediaStore.Video.VideoColumns.TITLE, title);
        contentvalues.put(MediaStore.Video.VideoColumns.DISPLAY_NAME, fileName);
        contentvalues.put(MediaStore.Video.VideoColumns.DATE_TAKEN, System.currentTimeMillis());
        contentvalues.put(MediaStore.Video.VideoColumns.DATE_ADDED, Long.valueOf(System.currentTimeMillis() / 1000));                     
        contentvalues.put(MediaStore.Video.VideoColumns.DATE_MODIFIED, Long.valueOf(System.currentTimeMillis() / 1000));
        contentvalues.put(MediaStore.Video.VideoColumns.MIME_TYPE, MIME_TYPE_VIDEO);
        contentvalues.put(MediaStore.Video.VideoColumns.RELATIVE_PATH, EnvironmentWrappper.RELATIVE_PATH_VIDEO);
        contentvalues.put(MediaStore.Video.VideoColumns.SIZE, outputFile.length());

        long duration = 0;
        List<Metadata> metadataList = VideoPreviewMetadataManager.loadMetaDataLite(outputPath);
        if (metadataList != null && !metadataList.isEmpty()) {
            for (Metadata metadata : metadataList) {
                if (ZMediaMetadataRetriever.METADATA_KEY_DURATION.equals(metadata.getKey())) {
                    duration = Long.parseLong(metadata.getValue().toString());
                }
            }
        }
        contentvalues.put(MediaStore.Video.VideoColumns.DURATION, duration);
        try {
            Uri uri = resolver.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, contentvalues);

             FileLocalUriWrapper file = new FileLocalUriWrapper(outputPath);
             OutputStream fos = resolver.openOutputStream(uri);
             InputStream inputStream = file.getFileInputStream();
             IOUtils.copyStream(inputStream, fos);
             fos.close();
             inputStream.close();

        } catch (Exception ex) {
            ex.printStackTrace();

        }
ContentValues ContentValues=新ContentValues();
contentvalues.put(MediaStore.Video.VideoColumns.TITLE,TITLE);
contentvalues.put(MediaStore.Video.VideoColumns.DISPLAY\u名称、文件名);
contentvalues.put(MediaStore.Video.VideoColumns.DATE_take,System.currentTimeMillis());
contentvalues.put(添加了MediaStore.Video.VideoColumns.DATE_,Long.valueOf(System.currentTimeMillis()/1000));
contentvalues.put(MediaStore.Video.VideoColumns.DATE_MODIFIED,Long.valueOf(System.currentTimeMillis()/1000));
contentvalues.put(MediaStore.Video.VideoColumns.MIME\u TYPE、MIME\u TYPE\u Video);
contentvalues.put(MediaStore.Video.VideoColumns.RELATIVE\u PATH,EnvironmentWrappper.RELATIVE\u PATH\u Video);
contentvalues.put(MediaStore.Video.VideoColumns.SIZE,outputFile.length());
长持续时间=0;
List metadataList=VideoPreviewMetadataManager.loadMetaDataLite(outputPath);
if(metadataList!=null&&!metadataList.isEmpty()){
for(元数据:metadataList){
if(zmediameTataRetriever.METADATA\u KEY\u DURATION.equals(METADATA.getKey())){
duration=Long.parseLong(metadata.getValue().toString());
}
}
}
contentvalues.put(MediaStore.Video.VideoColumns.DURATION,DURATION);
试一试{
Uri Uri=resolver.insert(MediaStore.Video.Media.EXTERNAL\u CONTENT\u Uri,contentvalues);
FileLocalUriWrapper file=新的FileLocalUriWrapper(outputPath);
OutputStream fos=解析器。openOutputStream(uri);
InputStream InputStream=file.getFileInputStream();
IOUtils.copyStream(输入流,fos);
fos.close();
inputStream.close();
}捕获(例外情况除外){
例如printStackTrace();
}

因为我没有真正的androidQ机器,所以我使用模拟器测试的结果,似乎这个属性的日期在androidQ中没有影响,甚至很多时候它都是空的

所以我在androidQ中根据获取的数据获取时间属性,在androidQ中根据添加日期获取时间属性


当然,这只是我自己的经验,不同的设备,可能从api28升级到29的设备可能会保留在MediaStore中