[Android] 에뮬레이터를 이용해 네트워크 통신 사용하기

원준·2023년 7월 20일

Android Studio

목록 보기
20/40

왜 함?

  • 에뮬레이터에서 네트워크 통신을 이용할려면 몇가지 설정이 필요한데, 보안상 막아뒀다고 한다.

설정하자!

  1. res/xml폴더에, network_security_config.xml 파일을 만들자.

    • 해당 코드는 요청데 대한 허용을 하라는 의미다.
    <?xml version="1.0" encoding="utf-8"?>
      <network-security-config>
          <domain-config cleartextTrafficPermitted="false">
              <domain includeSubdomains="true">
                  *.typicode.com
              </domain>
          </domain-config>
      </network-security-config>
    • typicode.com로 들어오는 요청에 대해 모두 허용 하라는 의미.
  2. manifests의 설정 파일에 내용을 추가하자.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
          
          <!--    버전 추가-->
    android:targetSandboxVersion="1"> 



    <!-- 인터넷 권한 설정 -->
<!--    배포, 에뮬레이터 테스트에 관계없이 무조건 들어가야하는 옵션-->
    <uses-permission android:name="android.permission.INTERNET" />


    
    <application
                 <!--        네트워크 허용 설정-->
        android:usesCleartextTraffic="true"
        android:networkSecurityConfig="@xml/network_security_config"

        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.NetworkApp1"
        tools:targetApi="31">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
profile
공부해보자

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

정말 좋은 정보 감사합니다!

답글 달기