@Junior93

Как получить полный путь к файлу через Uri?

Добрый день, я новичок в андроид разработке, у меня есть такая задача, нужно что бы из галереи телефона можно было поделиться через мое приложение файлами, далее я эти файлы должен отправить на бэк по http,
я добавил в манифест файл фильтер, приложение появилось в shar меню.
Создал Activity и методы, первый который получает файлы, второй который отправляет
метод получающий файлы
private void onSharedIntent() {
        Intent receiverdIntent = getIntent();
        String receivedAction = receiverdIntent.getAction();
        String receivedType = receiverdIntent.getType();

        if (receivedAction != null && receivedAction.equals(Intent.ACTION_SEND)) {

            Uri receiveUri = (Uri) receiverdIntent.getParcelableExtra(Intent.EXTRA_STREAM);

            if (receiveUri != null) {
                //do your stuff
                Uri fileUri = receiveUri;// save to your own Uri object
                File file= new File(fileUri.getPath());
                sendFile(file);
            }


        } else if (receivedAction != null && receivedAction.equals(Intent.ACTION_MAIN)) {

            Log.v(TAG, "onSharedIntent: nothing shared");
        }
    }

в вызове метода sendfile я получаю ошибку

FileNotFoundException: /-1/1/file:/data/user/0/com.google.android.apps.photos/cache/share-cache/media.tmp?filename=australia-lamenting-light-lake-view-landscapce%20(1).jpg/ORIGINAL/NONE/512356494: open failed: ENOENT (No such file or directory)


примерно вот так я добавляю файл в body
OkHttpClient client = new OkHttpClient();

        RequestBody requestBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("file", file.getName(),
                        RequestBody.create(MEDIA_TYPE_PNG, file))
                .build();

Подскажите пжл что я не правильно делаю?
  • Вопрос задан
  • 269 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы