С помощью диалогового окна узнаю Uri файла.
Intent i = new Intent().setType("*/*").setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(i, "Выбор файла"), 123);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 123 && resultCode == RESULT_OK) {
Uri uri = data.getData();
....
File f = new File(uri.toString);
// Далее с помощью OkHttp отправляю файл...
}
}
В стактрейсе пишет
java.io.FileNotFoundException: content:/com.android.providers.media.documents/document/image%3A10146 (No such file or directory)
Если заменить на uri.getPath()
почти тоже самое
java.io.FileNotFoundException: /document/image:10146 (No such file or directory)
При том, что файл который я открываю имеет расширение .png
и совсем другое имя.
Во-первых, не каждый Uri
можно конвертировать в путь файловой системы. Конкретно ваш наверное, возможно.
Во-вторых, если есть возможность работать с потоком данных, то получить его легко:
InputStream fileStream = null;
try {
fileStream = getContentResolver().openInputStream(uri);
} catch (IOException e) {
Log.e(this.getClass().getName(), e.getMessage());
}
Если все-таки с потоком никак, то сложнее, вот пример для файлов из галереи:
public String getRealPathFromURI(Context context, Uri contentUri) {
Cursor cursor = null;
try {
String[] proj = { MediaStore.Images.Media.DATA };
cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} finally {
if (cursor != null) {
cursor.close();
}
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Всем доброго дняПомогите с решением проблемы парсинга xml без тегов, т
Я новичок в java, подскажите что я делаю не такПроблема заключается в том что мне нужно по мере скролинга добавлять все новый и новый контент