【发布时间】:2022-10-14 07:37:54
【问题描述】:
我需要从服务器下载音频文件,它仍然可以工作 29 ,我更改了上面 30 的代码,我正面临这个问题。我在这里检查但没有找到答案。
这是我的代码sn-ps
File destination = new File(getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS) + File.separator, urltoDownload.getName());
final String relativeLocation = getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS) + File.separator + urltoDownload.getName();
ContentValues values = new ContentValues();
values.put(MediaStore.Audio.Media.TITLE, urltoDownload.getName());
values.put(MediaStore.Audio.Media.DISPLAY_NAME, urltoDownload.getName());
values.put(MediaStore.Audio.Media.MIME_TYPE, "audio/mp3");
values.put(MediaStore.Audio.Media.DATE_ADDED, System.currentTimeMillis() / 1000);
values.put(MediaStore.Audio.Media.DATE_TAKEN, System.currentTimeMillis());
values.put(MediaStore.Audio.Media.RELATIVE_PATH, "Audio/" + relativeLocation);
Uri uri = getApplicationContext().getContentResolver().insert(MediaStore.Files.getContentUri("external"), values);
ParcelFileDescriptor descriptor = getApplicationContext().getContentResolver().openFileDescriptor(uri,"w"); //"w" specify's write mode
FileDescriptor fileDescriptor = descriptor.getFileDescriptor();
InputStream dataInputStream = getApplicationContext().openFileInput(destination.getPath());
OutputStream output = new FileOutputStream(fileDescriptor);
byte[] buf = new byte[1024];
int bytesRead;
while ((bytesRead = dataInputStream.read(buf)) > 0)
{
output.write(buf, 0, bytesRead);
}
dataInputStream.close();
output.close();
【问题讨论】:
标签: android android-10.0 android-11 android-storage