Membuat Network Security Config untuk koneksi ke HTTPS
Starting with Android 9 (API level 28), cleartext support is disabled by default.
Dapat dilihat juga di - https://koz.io/android-m-and-the-war-on-cleartext-traffic/
Opsi 1 -
membuat file " res/xml/network_security_config.xml " -
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">Your URL(ex: 127.0.0.1)</domain> </domain-config> </network-security-config>
AndroidManifest.xml -
<?xml version="1.0" encoding="utf-8"?> <manifest ...> <uses-permission android:name="android.permission.INTERNET" /> <application ... android:networkSecurityConfig="@xml/network_security_config" ...> ... </application> </manifest>
Opsi 2 -
AndroidManifest.xml -
<?xml version="1.0" encoding="utf-8"?> <manifest ...> <uses-permission android:name="android.permission.INTERNET" /> <application ... android:usesCleartextTraffic="true" ...> ... </application> </manifest>
Menurut @david.s' answer bagian
android:targetSandboxVersion
juga bisa menjadi masalah yang sama -
Sesuai dengan Manifest Docs -
android:targetSandboxVersion
Untuk menggunakan target sandbox. Semakin tinggi nomor versi sandbox, semakin tinggi tingkat keamanannya. Nilai standarnya adalah 1; Anda juga dapat mengaturnya ke 2. Mengatur atribut ini ke 2 mengalihkan aplikasi ke sandbox SELinux yang berbeda. Pembatasan berikut berlaku untuk sandbox level 2:
- Nilai default dari
usesCleartextTraffic
false.di Network Security Config adalah- Uid sharing is not permitted/ tidak diizinkan.
Opsi 3 -
Jika anda menggunakan
android:targetSandboxVersion
di <manifest>
lalu kurangi menjadi 1
AndroidManifest.xml -
<?xml version="1.0" encoding="utf-8"?>
<manifest android:targetSandboxVersion="1">
<uses-permission android:name="android.permission.INTERNET" />
...
</manifest>
Source:
https://stackoverflow.com/questions/45940861/android-8-cleartext-http-traffic-not-permitted
No comments