Android 10以上,保存视频通知到相册

Posted microhex

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 10以上,保存视频通知到相册相关的知识,希望对你有一定的参考价值。

代码如下:

public static void videoSaveToNotifyGalleryToRefreshWhenVersionGreaterQ(Context context, File destFile) 
        ContentValues values = new ContentValues();
        Uri uriSavedVideo;

        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) 
            values.put(MediaStore.Video.Media.RELATIVE_PATH, "Movies/Folder");
            values.put(MediaStore.Video.Media.TITLE, destFile.getName());
            values.put(MediaStore.Video.Media.DISPLAY_NAME, destFile.getName());
            values.put(MediaStore.Video.Media.MIME_TYPE, "video/mp4");
            values.put(MediaStore.Video.Media.DATE_ADDED, System.currentTimeMillis() / 1000);
            values.put(MediaStore.Video.Media.DATA, destFile.getAbsolutePath())Uri collection = MediaStore.Video.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY);
            uriSavedVideo = context.getContentResolver().insert(collection, values);

         else 
            values.put(MediaStore.Video.Media.TITLE, destFile.getName());
            values.put(MediaStore.Video.Media.DISPLAY_NAME, destFile.getName());
            values.put(MediaStore.Video.Media.MIME_TYPE, "video/mp4");
            values.put(MediaStore.Video.Media.DATE_ADDED, System.currentTimeMillis() / 1000);
            values.put(MediaStore.Video.Media.DATA, destFile.getAbsolutePath());

            uriSavedVideo = context.getContentResolver().
                    insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, values);

        

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) 
            values.put(MediaStore.Video.Media.DATE_TAKEN, System.currentTimeMillis());
            values.put(MediaStore.Video.Media.IS_PENDING, 1);
        

        ParcelFileDescriptor pfd;
        try 
            pfd = context.getContentResolver().openFileDescriptor(uriSavedVideo, "w");
            FileOutputStream out = new FileOutputStream(pfd.getFileDescriptor());

            FileInputStream in = new FileInputStream(destFile);

            byte[] buf = new byte[8192];
            int len;
            while ((len = in.read(buf)) > 0) 
                out.write(buf, 0, len);
            

            out.close();
            in.close();
            pfd.close();
         catch (Exception e) 
            e.printStackTrace();
        

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) 
            values.clear();
            values.put(MediaStore.Video.Media.IS_PENDING, 0);
            context.getContentResolver().update(uriSavedVideo, values, null, null);
        

    

以上是关于Android 10以上,保存视频通知到相册的主要内容,如果未能解决你的问题,请参考以下文章

Android 10以上,保存视频通知到相册

Android 10以上,保存视频通知到相册

Android 保存资源图片到相册最新写法适用于Android10.0及以上

保存照片和视频到相册显示

Android拍照后通知更新相册无效果搜遍全网原来是这个原因

手机怎么把网页上的图片弄到相册里