Я работаю над проектом, где пользователь может загрузить документ на мой сервер. Этот файл может быть выбран либо из локального хранилища, либо из облачного хранилища, например, на Google Диске. Когда я нажимаю на файл в окне выбора файлов, все, что я получаю, это информация об учетной записи и информация о документе как URI. Когда я пытался извлечь документ из этого URI, он показывает FileNotFound. Я также прошел Drive API, но меня это немного смущает. Ниже приведены моменты, с которыми я столкнулся при использовании Google Drive API:
1. Как выбрать файл из локального хранилища.
2. Как мне получить FileId из выбранного файла.
Я пытался использовать следующий фрагмент кода:
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.setType("**/");
startActivityForResult(intent, 1000);
и In onActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode,
Intent resultData) {
// The ACTION_OPEN_DOCUMENT intent was sent with the request code
// READ_REQUEST_CODE. If the request code seen here doesn't match, it's the
// response to some other intent, and the code below shouldn't run at all.
if (requestCode == 1000 && resultCode == Activity.RESULT_OK) {
// The document selected by the user won't be returned in the intent.
// Instead, a URI to that document will be contained in the return intent
// provided to this method as a parameter.
// Pull that URI using resultData.getData().
Uri uri = null;
if (resultData != null) {
uri = resultData.getData();
Log.i("URI", "Uri: " + uri.toString());
try {
readTextFromUri(uri);
getMimeType(this,uri);
} catch (IOException e) {
e.printStackTrace();
}
// showImage(uri);
}
}
}
private String readTextFromUri(Uri uri) throws IOException {
// FileInputStream fileInputStream=new FileInputStream(uri.)
InputStream inputStream = getContentResolver().openInputStream(uri);
BufferedReader reader = new BufferedReader(new InputStreamReader(
inputStream));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
// fileInputStream.close();
// parcelFileDescriptor.close();
return stringBuilder.toString();
}
Вывод:
Может ли кто-нибудь выслать мне ссылку, как загрузить документ (я должен даже проверить расширение документа) из локального хранилища и с диска Google в окне выбора файлов.