Начиная с Android 8 по умолчанию запрещён обмен данными по сети открытым текстом. В частности, по умолчанию запрещено использование протокола HTTP, в то время как HTTPS может свободно применяться. Но, как быть если в силу специфики решаемой задачи нужен именно HTTP?
На самом деле, этот вопрос можно легко разрешить путём настройки конфигурации сетевой безопасности.
Если вам необходимо запустить операционную систему с флешки, то необходимо знать как отключить secure boot , так как из-за него система может не запуститься. Это мы рассмотрели в отдельном материале.
В папке res проекта нужно создать папку xml и поместить в неё файл network_sequrity_config.xml следующего содержания:
1 2 3 4 5 6 7 8 |
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">000.000.000.000</domain> <domain includeSubdomains="true">127.000.000.001</domain> <domain includeSubdomains="true">example.com</domain> </domain-config> </network-security-config> |
Указанные IP-адреса и домен example.com приведены просто в качестве примера.
Тег domain-config с атрибутом cleartextTrafficPermitted равным true разрешает использование протокола HTTP для IP-адресов и доменов, которые указаны во вложенных тегах domain. В свою очередь атрибут includeSubdomains у тега domain указывает распространяется ли это разрешение, но поддомены (если true, то распространяется).
После того как файл network_sequrity_config.xml будет добавлен, нужно указать его в атрибуте android:networkSecurityConfig тега application в манифесте приложения, как показано ниже.
1 2 3 4 5 6 7 8 |
<application android:allowBackup="false" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:networkSecurityConfig="@xml/network_security_config" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> |
Если всё будет сделано правильно, то ваше приложение сможет без проблем работать с указанными IP-адресами или доменами по HTTP.
Источники
- Конфигурация сетевой безопасности (документация Google).
Добавить комментарий