问题描述
我将我的应用程序定位为 android 11,在使用 MediaStore 处理文件的糟糕方式时遇到了很多问题!
InputStream inputStream = connection.getInputStream();
BufferedInputStream bis = new BufferedInputStream(inputStream);
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.disPLAY_NAME,fileName);
values.put(MediaStore.MediaColumns.MIME_TYPE,mediaType+"/"+fileExt.replace(".",""));
final ContentResolver resolver = context.getContentResolver();
Uri uri = null;
final Uri contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
ContentValues contentValues = new ContentValues();
String fname = pref.getgalleryName()+File.separator +fileName;
contentValues.put(MediaStore.MediaColumns.disPLAY_NAME,fileName);
if(fileExt.equals(".mp4"))
contentValues.put(MediaStore.MediaColumns.MIME_TYPE,"video/mp4");
else if(fileExt.equals(".mp3"))
contentValues.put(MediaStore.MediaColumns.MIME_TYPE,"audio/mp3");
else contentValues.put(MediaStore.MediaColumns.MIME_TYPE,"audio/*");
contentValues.put(
MediaStore.Audio.Media.RELATIVE_PATH,Environment.DIRECTORY_DOWNLOADS );
String[] projection = {MediaStore.MediaColumns._ID,MediaStore.MediaColumns.disPLAY_NAME,MediaStore.MediaColumns.RELATIVE_PATH,MediaStore.MediaColumns.DATE_MODIFIED
};
uri = resolver.insert(MediaStore.Downloads.EXTERNAL_CONTENT_URI,contentValues);
contentValues.put(MediaStore.Audio.Media.IS_PENDING,0);
}
if (uri != null) {
OutputStream outputStream = context.getContentResolver().openOutputStream(uri);
int lenghtOfFile = connection.getContentLength();
if (outputStream != null) {
bufferedoutputstream bos = new bufferedoutputstream(outputStream);
byte[] buffer = new byte[]{(byte) (1024 >>> 8),(byte) 1024};
int bytes = bis.read(buffer);
long total = 0;
int len1 = 0;
while ((len1 = bis.read(buffer)) > 0) {
total += len1;
publishProgress("" + (int)((total*100)/lenghtOfFile));
bos.write(buffer,len1);
}
bos.close();
}
}
bis.close();
是否可以更快地下载?我只需要下载 2 个媒体文件,分别是 .mp3 和 .mp4
使用 android 11 即使是媒体文件,有没有其他方法可以通过其他方式下载此文件?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)