Notice
Recent Posts
Recent Comments
Link
투케이2K
35. (TWOK/UTIL) [Android/Java] AndroidManifest.xml - 애플리케이션 설정 및 퍼미션 관리 본문
투케이2K 유틸파일
35. (TWOK/UTIL) [Android/Java] AndroidManifest.xml - 애플리케이션 설정 및 퍼미션 관리
투케이2K 2022. 4. 14. 08:05[설 명]
프로그램 : Android / Java
설 명 : 애플리케이션 설정 및 퍼미션 관리
[소스 코드]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.app.test">
<!-- 패키지명 설정 실시 -->
<!-- 네트워크 연결 상태 체크 : 퍼미션 설정 선언 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-feature android:name="android.hardware.location.network"/>
<!-- WindowManager Token Exception : 퍼미션 설정 선언 -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<!-- 블루투스 및 GPS : 퍼미션 설정 선언 -->
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<!--블루투스 권한 추가 sdk 31 대응-->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE"/>
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
<!-- 화면 강제 기상 : 퍼미션 설정 선언 -->
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<!-- 진동 기능 : 퍼미션 설정 선언 -->
<uses-permission android:name="android.permission.VIBRATE"/>
<!-- 간편 인증 [지문, 패턴] : 퍼미션 설정 선언 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
<uses-permission android:name="android.permission.USE_BIOMETRIC"/>
<!-- NFC에서 HCE(호스트 카드) 통신 (유심 사용) : 퍼미션 -->
<uses-permission android:name="android.permission.NFC"/>
<uses-feature android:name="android.hardware.nfc" android:required="true" />
<!-- 앱 실행 충돌 현상 해결 위함 : 삼성 앱 런타임 권한 -->
<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE"/>
<!-- 카메라 : QR 스캔 -->
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION"/>
<!-- 외부앱 설치 확인 및 외부앱 열기 패키지 선언 부분 -->
<!-- 참고 : C_MoveApp 클래스에서 goAppRunNew , goAppSchemeMoveNew 사용 시에도 선언 필요 -->
<queries>
<!-- [기본 크롬] -->
<package android:name="com.android.chrome" /> <!-- [크롬] -->
<!-- [카카오톡 링크 연동] -->
<package android:name="com.kakao.talk" /> <!-- [카카오톡] -->
</queries>
<!-- 애플리케이션 설정 -->
<application
android:name=".S_Application"
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
android:largeHeap="true"
android:hardwareAccelerated="true"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan"
android:configChanges="keyboardHidden|orientation|screenSize"
android:extractNativeLibs="true"
android:requestLegacyExternalStorage="true"
tools:replace="android:allowBackup">
<!-- 1) android:allowBackup="false" : 애플리케이션 삭제 후 재설치시 데이터를 초기화 시킨다 -->
<!-- 2) android:icon="@mipmap/ic_logo" : 앱 설치 시 표시되는 아이콘을 설정한다 -->
<!-- 3) android:label="@string/app_name" : 앱 설치 시 표시되는 이름을 설정한다 (string.xml 파일) -->
<!-- 4) android:roundIcon="@mipmap/ic_logo" : 앱 설치 시 표시되는 아이콘을 설정한다 -->
<!-- 5) android:supportsRtl="true" : RIGHT to LEFT 레이아웃을 지원한다는의미입니다 -->
<!-- 6) android:theme="@style/AppTheme" : 기본 애플리케이션 및 액티비티 테마, 액션바 표시 여부를 설정한다 (styles.xml 파일) -->
<!-- 7) android:usesCleartextTraffic="true" : http 를 사용할 수 있다 (보안 강화로 기본적으로 http 접근을 허용하지 않는다) -->
<!-- 8) android:largeHeap="true" : 기본 애플리케이션 사용 메모리 용량 늘린다 (메모리 누수 위함) -->
<!-- 9) android:hardwareAccelerated="true" : 기본 애플리케이션 성능 가속화를 허용한다 (모든 그리기 작업에서 GPU를 사용) -->
<!-- 10) android:excludeFromRecents = "true" : 최근 앱 작업 목록에 남기지 않는다 -->
<!-- 11) <uses-library android:name="org.apache.http.legacy" android:required="false"/> : apache http 클라이언트 이슈 방지 [application 내부 독립 구성] -->
<!-- 12) android:screenOrientation="portrait" 항상 앱 화면을 세로 방향으로 표시하겠다-->
<!-- 13) android:windowSoftInputMode="adjustPan" : 키보드 활성 시 ui 밀림 현상 방지 -->
<!-- 14) android:configChanges="keyboardHidden|orientation|screenSize" : 액티비티 화면 가로, 세로 간 전환 시 초기화 방지 [1] -->
<!-- 15) android:configChanges="orientation|keyboardHidden|keyboard|screenSize" : 액티비티 화면 가로, 세로 간 전환 시 초기화 방지 [2] -->
<!-- 16) android:extractNativeLibs="true" : 액티비티 화면 가로, 세로 간 전환 시 초기화 방지 [2] -->
<!-- 17) android:requestLegacyExternalStorage="true" : 안드로이드 파일 읽기, 쓰기 접근 허용 -->
<!-- OS 9.0 이상일때, 해당 부분 추가 -->
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
<!-- 로딩 액티비티 -->
<activity
android:name=".A_Intro"
android:exported="true"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan"
android:configChanges="keyboardHidden|orientation|screenSize">
<!-- 앱 화면 세로 고정 : android:screenOrientation="portrait" -->
<!-- 키보드 고정 : android:windowSoftInputMode="adjustPan" -->
<!-- 가상키보드 상태에 따라 리사이징 : android:windowSoftInputMode="adjustResize" -->
<!-- 앱 스키마 실행 시 앱 중복 실행 방지 : android:launchMode="singleTask" -->
<!-- 앱 런처 실행 인텐트 필터 등록 -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- UrlSchema 스키마 사용위해 인텐트 필터 등록 -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- 로그인 연동 : 호스트 , 스키마 -->
<data
android:scheme="test"
android:host="login" />
<!-- 일반 실행 : 호스트 , 스키마 -->
<data
android:scheme="test"
android:host="call" />
</intent-filter>
</activity>
<!-- 메인 웹뷰 액티비티 -->
<activity
android:name=".A_Main"
android:exported="true"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize"
android:configChanges="keyboardHidden|orientation|screenSize">
<!-- 앱 화면 세로 고정 : android:screenOrientation="portrait" -->
<!-- 키보드 고정 : android:windowSoftInputMode="adjustPan" -->
<!-- 가상키보드 상태에 따라 리사이징 : android:windowSoftInputMode="adjustResize" -->
</activity>
<!-- 서비스 : 사용자 작업 최근 앱 목록 작업 날림 이벤트 감지 -->
<service
android:name=".S_ProgramTaskService"
android:exported="true"
android:stopWithTask="false" />
<!-- 사용자가 앱 목록 날림 이벤트 감지 : android:stopWithTask="false" -->
</application>
</manifest>
반응형
'투케이2K 유틸파일' 카테고리의 다른 글
Comments