코딩스토리

[Android/안드로이드] Android OS 9 Pie버전에서 http사용하기 본문

Android/유용한 기술

[Android/안드로이드] Android OS 9 Pie버전에서 http사용하기

라크라꾸 2020. 1. 4. 18:38

API주소나 인터넷에 있는 이미지나 동영상을 재생하기 위해 url을 가져왔는데 이미지나 동영상이 안보일 경우가 있습니다.

Android OS 9 Pie버전부터는 "http://"URL 접근이 막혔습니다. 그리고 사용하고 있는 API주소나 이미지주소, 동영상 주소의 네트워크 경로가 http로 되어있기 때문에 다음과 같은 오류가 발생합니다.

Error. CLEARTEXT communication 'IP' to not permitted by network security policy

해결방법

1. 네트워크 주소를 http에서 https로 바꿔줍니다.

 

2. menifest에서 userCleartextTraffic를 true로 설정해줍니다.

  
  <uses-permission android:name="android.permission.INTERNET" />
  
  <application
    android:usesCleartextTraffic="true"
    ...
  </application>
  

 

3. 서버에서 아직 https로 구성되어 있지 않을 경우에는 해당 서버 주소를 http여도 실행되도록 허용해줄 수 있습니다.

res/xml 에 network_security_config.xml을 생성해줍니다.

 

network_security_config.xml

  
  <?xml version="1.0" encoding="utf-8"?>
  <network-security-config>
      <base-config cleartextTrafficPermitted="true">
          <trust-anchors>
              <certificates src="system" />
          </trust-anchors>
      </base-config>
  </network-security-config>
  

 

manifests에 xml파일을 config파일로 지정해줍니다.

  
  <uses-permission android:name="android.permission.INTERNET" />
  
  <application
    android:networkSecurityConfig="@xml/network_security_config"
    ...
  </application>
  

 

이렇게 설정을 하게 되면 네트워크에 접속을 할 수 있어 정상적으로 원하는 api나 이미지,동영상이 나오게 됩니다.

 

궁금하신시거나 부족한 점은 댓글 달아주세요~~

Comments