안드로이드 관련 포스팅 목록
2020/06/21 - [Android] - [Android] 안드로이드 자동 화면 회전 방지(Auto Screen Rotation Restriction)
2020/06/20 - [Android] - [Android] 안드로이드 화면 캡처 방지(Screen Capture Restriction)
안드로이드 인터넷 권한
안녕하세요.
오늘은 안드로이드 앱에서 인터넷 연결 권한을 설정하는 방법에 대하여 알아보겠습니다. 안드로이드 플랫폼에서는 internet 권한을 manifest에 설정하지 않으면 앱에서 외부로 네트워크 통신을 할 수 없습니다. 보안상의 이유도 있지만, 제일 중요한 것은 앱을 사용하는 사용자가 자신도 모르게 인터넷 통신을 위한 데이터 사용을 하지 않도록 설정함에 의미가 있습니다.
또한 백그라운드 서비스를 통해 사용자도 모르게 개인정보를 외부로 전송하거나 앱에서 사용중인 사용자의 중요 데이터를 노출할 수도 있습니다. 이러한 이유로 구글에선 인터넷 권한을 따로 정의하도록 되어있습니다.
자 그러면 어떻게 앱에 인터넷 권한을 설정하는지 알아보겠습니다.
인터넷 권한 설정
안드로이드 앱 개발중 인터넷 권한을 설정하는 방법은 크게 두가지입니다. 앱 개발 SDK 마시멜로 버전 미만에서 설정 하는 방법과 마시멜로 버전과 그 이상에서 설정하는 방법입니다.
마시멜로 버전 미만의 앱은 프로젝트의 Manifest 파일에 권한을 설정하지만 이후의 버전에서은 보안상의 이유로 앱이 실행될 때 인터넷 권한을 설정하도록 사용자에게 선택창을 나타나게 해야합니다. 이걸 런타임 퍼미션이라고 합니다. 소스코드에 권한 요청하는 API를 호출하도록 구현해야합니다
마시멜로 미만 인터넷 권한 설정
아래와 같이 AndroidManifest.xml 에 인터넷 권한 설정 구문을 추가해줍니다.
<uses-permission android:name="android.permission.INTERNET" />
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.newer.testapp">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
이후 앱을 실행한 후 네트워크 통신이 장상적으로 진행되는 것을 알 수 있습니다.
마시멜로 이상 인터넷 권한 설정
앱이 시작될 때 나타나는 mainactivity에 아래와 같이 권한을 요청하는 API 호출 구문을 추가합니다.
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{"android.permission.INTERNET"},
0);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{"android.permission.INTERNET"},
0);
}
이제 앱을 실행해보면 사용자에게 권한을 요청하는 알림창이 나타나며 허락과 취소에 따라 권한이 추가 되거나 취소됩니다. 만약 정상적으로 추가되었다면 네크워크 통신이 잘 되는 것을 알 수 있습니다.
마무리
이번 포스팅에서는 앱에 인터넷 권한을 설정하는 방법에 대하여 알아보았습니다.