Мне трудно загрузить изображение с устройства Android в мою учетную запись хранения Azure Cloud.
Ниже приведен код, с которого я начал работать.Тем не менее, изображение, выбираемое пользователем, возвращает URI, и я не могу заставить работать решение, которое включает преобразование URI в путь к файлу (что жестко закодировано в «рабочем» примере. Я читал в Интернете, что пути к файлам больше не приемлемы, поэтому я попытался преобразовать фотографию в растровое изображение, а также попытался использовать несколько решений, включающих getContextResolver (). Но каждый раз, когда я пробую другую тактику, файл не найден или я получаю исключение нулевого указателя.
//Code that works
final String filePath = "storage/emulated/0/DCIM/Camera/IMG_20190328_141613.jpg";
CloudBlockBlob blob = container.getBlockBlobReference(blobName);
File source = new File(filePath);
blob.upload(new FileInputStream(source), source.length());
//Alternative 1 that doesnt work
CloudBlockBlob blob = container.getBlockBlobReference(blobName);
String[] projection = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImageUri,projection,null,null,null);
cursor.moveToFirst();
int colIndex = cursor.getColumnIndex(projection[0]);
String filePath = cursor.getString(colIndex);
cursor.close();
File source = new File(filePath);
blob.upload(new FileInputStream(source), source.length());
Любая помощь в этом вопросе очень ценится.