Приложение WebView на Android не может получить доступ к Интернету, пока эмулятор работает нормально

Я разрабатываю небольшое приложение, которое загружает веб-сайт с помощью HttpUrlConnection с помощью ASyncTask и сохраняет его в строку, а затем отображает содержимое в TextView нажатием кнопки. При необходимости пользователь может нажать другую кнопку и перенести содержимое в другое действие и использовать WebView для отображения указанного содержимого на нем.

Проблема, с которой я сталкиваюсь, заключается в том, что приложение может загружать контент на эмуляторе, но не на реальном портативном устройстве. Я поместил разрешение на использование Интернета в манифесте.

Уровень API AVD: 26

Уровень API реального устройства: 28

Разработка приложений/целевой API: 21

вы ссылаетесь на http вместо контента https? если это так, вам нужно разрешить открытый текст в вашем манифесте с API 28.

Sam 08.04.2019 22:55

Пожалуйста, протестируйте его еще на одном устройстве!

Chandralal 08.04.2019 23:50

@sam Спасибо! Это очень помогло, когда я использовал его на реальном устройстве, я обращался только к http.

Jawad Ahmed 10.04.2019 20:31

Нет проблем, я добавлю это в ответ на случай, если это поможет кому-то еще в будущем. так что вы можете отметить это

Sam 10.04.2019 21:23
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Начиная с API 28 открытый текст HTTP больше не поддерживается по умолчанию. Вероятно, вы взаимодействуете с HTTP-контентом, и этого достаточно для уровня AVD 26.

Поэтому, чтобы исправить это, вы должны добавить в свой манифест следующее:

<application
    ...
    android:usesCleartextTraffic = "true"

Это позволит вам продолжать поддерживать HTTP-трафик. Однако, если вы пойдете по этому пути, вы должны знать о рисках безопасности и потенциально использовать файл конфигурации сети, чтобы ограничить целевые домены, с которыми вы взаимодействуете, с далеко не идеальной безопасностью.

Другие вопросы по теме