В своем приложении я хотел бы использовать файл gpx, загруженный с сервера.
Я использую GPXParser из https://github.com/ticofab/android-gpx-parser.
Когда я пытался разобрать файл gpx, я получил сообщение «java.io.FileNotFoundException: нет поставщика контента».
Gpx parsedGpx = null;
GPXParser parser = new GPXParser();
InputStream inputStream = getContentResolver().openInputStream(Uri.parse(stringUrl));
parsedGpx = parser.parse(inputStream);
Как я могу решить свою проблему?




getContentResolver предназначен для получения данных из ContentResolver, а не из любого случайного URL-адреса, он предназначен для получения данных из других процессов и обычно принимает строковую форму content://....
Сначала вам нужно загрузить gpx с помощью чего-то вроде HttpURLConnection, и это getInputStream() метод, чтобы получить inputStream для использования с парсером.
getContentResolver is to get data from a ContentResolver Нет. От контент-провайдера.
@blackapps вы перескакиваете на шаг / у вас другой взгляд на семантику. getContentResolver возвращает ContentResolver не поставщика контента, поскольку для получения данных может не потребоваться поставщик контента. Вы получаете данные от ContentResolver`а, он получает данные от поставщика контента. Это многоэтапный процесс, вы перепрыгиваете через шаг в многоступенчатой цепочке, которая продолжается дальнейшими шагами, когда поставщик контента получает данные из другого места (память, хранилище, сеть и т. д.).
Преобразователь содержимого не видит никаких данных. Он открывает для вас входной поток, а затем данные передаются вам от поставщика контента. Преобразователь контента ничего об этом не знает. Это даже не шпион.
@blackapps «данные» могут быть объектом входного потока или объектом outputstream или даже loadThumbnail, который возвращает Bitmap, а для типов file:// и android.resource:// Uri он даже не связан с поставщиком контента, вы ошибаетесь getContentResolver с тем, какие данные вы получаете для некоторых Uri можно получить из его getContentResolver().openInputStream() метода через InputStream объект.
В чем ценность
stringUrl? Дайте и пример. Учитывая, что вы пытаетесь проанализировать строку для Uri, предполагается, что Uri не имеет правильного типа дляgetContentResolver, так откуда вы взялиstringUrl?