Я хочу загрузить аудиофайл, сохраненный во внутренней памяти моего мобильного устройства, в хранилище firebase. Вот мой код
TextView filePathText;
Button sUrlBtn, upload;
Uri audio_uri = null;
public class AddPostActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_post);
filePathText = findViewById(R.id.filePathText);
upload = findViewById(R.id.add_upload);
sUrlBtn = findViewById(R.id.add_filePath);
sUrlBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(intent, 10);
}
});
...
upload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String fileName = filePathText.getText().toString().trim();
fileName += "/test.mp3";
Uri uri = Uri.fromFile(new File(fileName));
uploadData(fileName, uri);
}
}
});
private void uploadData(final String file, final Uri uri) {
...
StorageReference ref = FirebaseStorage.getInstance().getReference();
ref.child("tAudio").child("test_audio.mp3").putFile(uri)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Task<Uri> uriTask = taskSnapshot.getStorage().getDownloadUrl();
while (!uriTask.isSuccessful()) ;
if (uriTask.isSuccessful()) {
audio_uri = null;
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d("AddPostActivity", "TEST onFailure()...\nException : " + e.getMessage());
}
});
}
...
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == 10) {
audio_uri = data.getData();
filePathText.setText(audio_uri.getEncodedPath());
}
}
super.onActivityResult(requestCode, resultCode, data);
}
Что я хочу сделать, это ... 1. Получить путь к файлу из аудиофайла внутренней памяти, нажав sUrlBtn
2. Загрузить этот аудиофайл в хранилище Firebase, нажавupload
Но когда я загружаю этот файл, e.getMessage()
выглядит следующим образом. Исключение: произошла неизвестная ошибка, проверьте ответный код HTTP и внутреннее исключение для ответа сервера. Есть ли какое-либо решение для загрузки файла из внутренней памяти андроид мобильного устройства в хранилище firebase ??