26

I have already defined a custom network security config and included it in my manifest as recommended here

res/xml/network_security_config.xml:

  <?xml version="1.0" encoding="utf-8"?>
  <network-security-config>
  <domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="true">127.0.0.1</domain>
    <domain includeSubdomains="true">localhost</domain>
  </domain-config>
  </network-security-config>

and this is in my Android.manifest:

    <application android:icon="@drawable/icon" 
             android:allowBackup="false"
             android:usesCleartextTraffic="true"
             android:networkSecurityConfig="@xml/network_security_config"
             android:label="@string/app_name"
             android:theme="@style/AppTheme"
             android:persistent="true" >

Even with these changes when attempting to communicate via HTTP to 127.0.0.1 I see this in logcat:

08-09 10:50:34.395 30791  3607 D NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: true
08-09 10:50:34.397 30791  3607 D NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: true
08-09 10:50:34.401 30791  3607 W DownloadManager: [647] Stop requested with status HTTP_DATA_ERROR: Cleartext HTTP traffic to 127.0.0.1 not permitted
08-09 10:50:34.402 30791  3607 D DownloadManager: [647] Finished with status WAITING_TO_RETRY

EDIT: Update (21 Aug 2018) after "fixing" this issue it seems that a couple of hours after the app is installed the DownloadManager mysteriously stops accepting cleartext HTTP.

I can't explain what's happening. If I reboot the device things work great for a period of time then DownloadManager refuses cleartext again. I'm writing this off as an Android P bug that I hope gets resolved.

EDIT 2: Update (17 Jan 2019) my pixel2 is now running android 9 with a patch from 5 Jan 2019 and I no longer see the issue (so far). I'm guessing this got resolved in some patch since August.

spartygw
  • 3,289
  • 2
  • 27
  • 51
  • 1
    add also in ... close it with – ares777 Aug 09 '18 at 15:22
  • 1
    @user3344236 replacing domain-config with base-config solved it! Submit your response as an answer and I'll mark it accepted. – spartygw Aug 09 '18 at 16:17
  • 1
    Spartygw, in response to "EDIT: Update (21 Aug 2018)" I see the same thing as you. It works, then stops working after a few hours. To temporarily resolve the issue I can force quit the Download Manager app, restart my app and try the download again and it will work. I agree with you. It does seem like a bug in Android P's code in Download Manager. – hokielife Sep 05 '18 at 22:31
  • 3
    @spartygw I've filed an issue to Google regarding your Update (21 Aug 2018). https://issuetracker.google.com/issues/114143692 – LeonLu Sep 06 '18 at 18:34
  • @LeonLu that's great! I wasn't even aware of how to raise this as an issue so I'm thankful that you did. – spartygw Sep 06 '18 at 23:27

3 Answers3

48

Create a XML res/xml/network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

Reference this file in your tag Application, inside AndroidManifest.xml. Like:

android:networkSecurityConfig="@xml/network_security_config"
pedrofsn
  • 326
  • 2
  • 15
ares777
  • 3,590
  • 1
  • 22
  • 23
0

Open manifest enter image description here

Add android:usesCleartextTraffic="true" enter image description here

Herbert
  • 75
  • 8
-1

Replace the BASE_URL protocol from http://... to https://