android 主目录音频不允许用于内容://media/external/file;允许的目录是[下载,文档] -非法参数异常

t2a7ltrp  于 2023-03-16  发布在  Android
关注(0)|答案(2)|浏览(11603)

我需要从服务器下载一个音频文件,它的工作仍然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();
b4wnujal

b4wnujal1#

或者不要使用MediaStore.Files.getContentUri(“外部”)。不要拿. Files.一个。还有更适合的。

6vl6ewon

6vl6ewon2#

伙计们,如果像这样的代码出现在我的视频旁边,这是可以的吗?我不是说我故意点击发送到一个网站或什么的。这是我想的吗?你能从这里下载一个视频吗?我只想说相机有一个wifi选项。

相关问题