Исправлена ошибка получения абсолютного пути к файлу Google Drive.
Получается, что мы не можем напрямую получить абсолютный путь из URI
, который был возвращен при выборе Google Drive File.Следовательно, нам нужно применить какой-то взлом, чтобы решить эту проблему.
Что я сделал, я раздвоил репо react-native-get-real-path
в наше собственное, а затем изменил несколько вещей в файле GRP.java
.
Я в основном создал InputStream
из полученного файла диска Google URI
, а затем, используя этот поток, скопировал файл в каталог кэша приложения и возвратил абсолютный путь к этому файлу и вуаля.
Вотфрагмент кода для решения:
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.