Ответ 1
Исправлена ошибка, позволяющая получить абсолютный путь к файлу Google Диска.
Таким образом, оказывается, что мы не можем напрямую получить абсолютный путь от URI
, который был возвращен путем выбора файла Google Диска. Следовательно, нам нужно применить какой-то хак для решения проблемы.
То, что я сделал, это то, что я GRP.java
react-native-get-real-path
в наши собственные, а затем изменил несколько вещей в файле GRP.java
.
Я в основном создал InputStream
из полученного URI
файла диска Google, а затем, используя этот поток, скопировал файл в каталог кэша приложений и вернул абсолютный путь к этому файлу и voila.
Вот фрагмент кода для решения:
input = context.getContentResolver().openInputStream(uri);
/* save stream to temp file */
/* displayName is obtained from the URI */
File file = new File(context.getCacheDir(), displayName);
OutputStream output = new FileOutputStream(file);
byte[] buffer = new byte[4 * 1024]; // or other buffer size
int read;
while ((read = input.read(buffer)) != -1) {
output.write(buffer, 0, read);
}
output.flush();
final String outputPath = file.getAbsolutePath();
return outputPath;
Вы можете клонировать репозиторий git. Ссылка https://github.com/Wraptime/react-native-get-real-path/pull/8.