Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- @InstallIn
- 로그인정보
- android:allowBackup
- How to check permission?
- AndroidBackup
- illegalstateexception
- Android
- Check Permission
- It
- 권한 체크
- Oreo
- 안드로이드 파이
- 개발자
- 안드로이드
- 안드로이드백업
- 구글
- TedPermission
- java
- Permission Check
- Cleartext
- 스토어확인
- IOException
- dagger
- keytool
- TextFileReader
- 설치확인
- Hilt
- How to Android TextFile Reader?
- 투명액티비티 오류
- 텍스트파일 읽기
Archives
- Today
- Total
사슴벌레의 개발블로그
안드로이드 권한여부 확인하기 본문
앱시작시 전체 권한여부 체크할때 필요해서 예전에 만든거...Permission관련 라이브러리는 Tedpermission이 잘되어있음..import android.content.Context;import android.content.pm.ApplicationInfo;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import java.util.ArrayList;public class PermissionUtils {// 아래는 주요퍼미션들public static final String CALENDAR[] = {"android.permission.READ_CALENDAR", "android.permission.WRITE_CALENDAR"};public static final String CAMERA[] = {"android.permission.CAMERA"};public static final String CONTACTS[] = {"android.permission.READ_CONTACTS", "android.permission.WRITE_CONTACTS","android.permission.GET_ACCOUNTS"};public static final String LOCATION[] = {"android.permission.ACCESS_FINE_LOCATION", "android.permission.ACCESS_COARSE_LOCATION"};public static final String MICROPHONE[] = {"android.permission.RECORD_AUDIO"};public static final String PHONE[] = {"android.permission.READ_PHONE_STATE", "android.permission.CALL_PHONE","android.permission.READ_CALL_LOG", "android.permission.WRITE_CALL_LOG","com.android.voicemail.permission.ADD_VOICEMAIL", "android.permission.USE_SIP","android.permission.PROCESS_OUTGOING_CALLS"};public static final String SENSORS[] = {"android.permission.BODY_SENSORS"};public static final String SMS[] = {"android.permission.SEND_SMS", "android.permission.RECEIVE_SMS", "android.permission.READ_SMS","android.permission.RECEIVE_WAP_PUSH", "android.permission.RECEIVE_MMS"};public static final String STORAGE[] = {"android.permission.READ_EXTERNAL_STORAGE", "android.permission.WRITE_EXTERNAL_STORAGE"};static PermissionUtils mPermissionUtils;private Context mContext;public static PermissionUtils get(Context context) {if (mPermissionUtils == null) {mPermissionUtils = new PermissionUtils(context);return mPermissionUtils;} else {return mPermissionUtils;}}private PermissionUtils(Context context) {mContext = context;}/*** 현재 앱에서 사용하는 필수 퍼미션들을 확인하여 사용되는 퍼미션리스트 리턴*/public ArrayList<String> checkUsePermissionAll() {ArrayList<String> result = new ArrayList<>();PackageManager packageManager = mContext.getPackageManager();try {ApplicationInfo applicationInfo = packageManager.getApplicationInfo(mContext.getPackageName(), PackageManager.GET_META_DATA);PackageInfo packageInfo = packageManager.getPackageInfo(applicationInfo.packageName, PackageManager.GET_PERMISSIONS);String[] requestedPermissions = packageInfo.requestedPermissions;if (requestedPermissions != null) {for (int i = 0; i < requestedPermissions.length; i++) {try {String permissionName = packageManager.getPermissionInfo(requestedPermissions[i], PackageManager.GET_META_DATA).name;if (isDangerousPermission(permissionName)) {result.add(permissionName);}} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}}}} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return result;}/*** @param permission* @return 주요 퍼미션여부*/public boolean isDangerousPermission(String permission) {for (int i = 0; i < CALENDAR.length; i++) {if (CALENDAR[i].equals(permission))return true;}for (int i = 0; i < CAMERA.length; i++) {if (CAMERA[i].equals(permission))return true;}for (int i = 0; i < LOCATION.length; i++) {if (LOCATION[i].equals(permission))return true;}for (int i = 0; i < MICROPHONE.length; i++) {if (MICROPHONE[i].equals(permission))return true;}for (int i = 0; i < PHONE.length; i++) {if (PHONE[i].equals(permission))return true;}for (int i = 0; i < SENSORS.length; i++) {if (SENSORS[i].equals(permission))return true;}for (int i = 0; i < SMS.length; i++) {if (SMS[i].equals(permission))return true;}for (int i = 0; i < STORAGE.length; i++) {if (STORAGE[i].equals(permission))return true;}for (int i = 0; i < CONTACTS.length; i++) {if (CONTACTS[i].equals(permission))return true;}return false;}/*** @param permissionName* @return 앱에서 해당 퍼미션 선언여부 확인*/public boolean isPermissionDeclaration(String permissionName) {PackageManager packageManager = mContext.getPackageManager();try {ApplicationInfo applicationInfo = packageManager.getApplicationInfo(mContext.getPackageName(), PackageManager.GET_META_DATA);PackageInfo packageInfo = packageManager.getPackageInfo(applicationInfo.packageName, PackageManager.GET_PERMISSIONS);String[] requestedPermissions = packageInfo.requestedPermissions;for (int i = 0; i < requestedPermissions.length; i++) {if (requestedPermissions[i].equals(permissionName)) {return true;}}} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return false;}}
'Android' 카테고리의 다른 글
안드로이드 APK서명 검증하기 (빌드 유효성 체크) (0) | 2021.12.13 |
---|---|
안드로이드 앱에서 로그인정보가 계속 남아있는경우.. (0) | 2019.08.23 |
안드로이드 파이 이슈 java.io.IOException: Cleartext HTTP traffic to www.site.com not permitted (4) | 2019.01.18 |
안드로이드 오레오버전에서 투명액티비티 오류 (0) | 2019.01.03 |
안드로이드 텍스트파일 읽기 (0) | 2019.01.02 |
Comments