我需要从服务器下载一个音频文件,它的工作仍然29,我改变了30以上面临这个问题的代码。我检查了这里,但没有找到答案。
下面是我的代码片段
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();
2条答案
按热度按时间b4wnujal1#
或者不要使用MediaStore.Files.getContentUri(“外部”)。不要拿. Files.一个。还有更适合的。
6vl6ewon2#
伙计们,如果像这样的代码出现在我的视频旁边,这是可以的吗?我不是说我故意点击发送到一个网站或什么的。这是我想的吗?你能从这里下载一个视频吗?我只想说相机有一个wifi选项。