Android相册刷新兼容高版本

核心代码

       File file = new File(photoPath);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
   

            //方法1:
            ContentValues values = new ContentValues();
            values.put(MediaStore.MediaColumns.DISPLAY_NAME, file.getName());
            values.put(MediaStore.MediaColumns.MIME_TYPE, "image/png");
            values.put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DCIM);
            ContentResolver contentResolver = getContentResolver();
            Uri uri = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,  values);
            if (uri == null) {
   
                Log.i(tag,"url is  null:");
                return;
            }
            Log.i(tag,"uri is not null:"+uri.getPath());

            try {
   
                OutputStream outputStream = contentResolver.openOutputStream(uri);
                FileInputStream fileInputStream = new FileInputStream(file);
                FileUtils.copy(fileInputStream, outputStream);
                fileInputStream.close();
                outputStream.close();
            } catch (IOException e) {
   
                e.printStackTrace();
            }
            //方法2:看的没啥问题 感觉回退回去了
            //addMediaStore(MainActivity.this,file,file.getAbsolutePath());

        } else {
   
            //方式1
            MediaScannerConnection.scanFile(
                    getApplicationContext(),
                    new String[]{
   file.getAbsolutePath()},
                    new String[]{
   "image/png"},
                    (path, uri) -> {
   
                        // Scan Completed
                    });
            //方式2
            //context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(targetFile)));
        }

完整例子

package com.szw.phototest;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import andro
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值