web-dev-qa-db-fra.com

Comment résoudre Android P DownloadManager s'arrêtant avec "Trafic HTTP Cleartext vers 127.0.0.1 non autorisé"?

J'ai déjà défini une configuration de sécurité réseau personnalisée et l'ai incluse dans mon manifeste comme recommandé ici

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>

et c'est dans mon 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" >

Même avec ces modifications lors de la tentative de communication via HTTP vers 127.0.0.1, je vois cela dans 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: Mise à jour (21 août 2018) après avoir "corrigé" ce problème, il semble que quelques heures après l'installation de l'application, DownloadManager cesse mystérieusement d'accepter HTTP en texte clair.

Je ne peux pas expliquer ce qui se passe. Si je redémarre l'appareil, les choses fonctionnent très bien pendant un certain temps, puis DownloadManager refuse à nouveau le texte clair. J'écris ceci comme un Android bogue P que j'espère résolu.

EDIT 2: Mise à jour (17 janvier 2019) mon pixel2 fonctionne maintenant Android 9 avec un correctif à partir du 5 janvier 2019 et je ne vois plus le problème (donc Je suppose que cela a été résolu dans un correctif depuis août.

14
spartygw

Créez un fichier XML res/xml/network_security_config.xml

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

Référencez ce fichier dans votre application Tag, dans AndroidManifest.xml. Comme:

Android:networkSecurityConfig="@xml/network_security_config"
24
user3344236