API 30. Не получается подключиться по HTTP
Есть таска, которая грузит файл из URL. Проблема в том, что не получается подключиться по HTTP только в Android 11. На других API код работает корректно.
class Download extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
InputStream input = null;
HttpURLConnection connection = null;
Log.i("LOG", "Созданы переменные");
try {
URL url = new URL("ссылка");
connection = (HttpURLConnection) url.openConnection();
connection.connect();
Log.i("LOG", "Подключен успешно");
int fileLength = connection.getContentLength();
Log.i("LOG", "Длина файла: " + fileLength + " байт");
input = connection.getInputStream();
Log.i("LOG", "Создан входящий поток");
BufferedInputStream bis = new BufferedInputStream(input);
Log.i("LOG", "Файл в буфере");
} catch (Exception e) {
Log.i("LOG", "Ошибка подключения");
} finally {
try {
if (input != null)
input.close();
} catch (IOException ignored) {
}
if (connection != null)
connection.disconnect();
}
Log.i("LOG", "Таска закончена");
return null;
}
}
Ответы (1 шт):
Автор решения: Wlad
→ Ссылка
Попробуйте в Манифесте приложения прописать
<application
....
android:usesCleartextTraffic="true"
....>
Это ввели несколько версий Андроида назад, т.к. к сайтам без SSL защиты нет уже почти никакого доверия.
p.s. на Андроид 10 тоже не должно без него работать.