해킨토시 관련 게시판이 아닙니다 | 1번 |
---|
안드로이드 manifests에 application 위에다가 다음코드를 추가합니다
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
그리고 MainActivity에 다음 코드를 추가해줍니다.
package com.jcdev.permission; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import android.Manifest; import android.content.pm.PackageManager; import android.os.Bundle; import android.widget.Toast; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //위험 권한을 부여할 권한 지정하기 String[] permissions = { Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE }; checkPermissions(permissions); } public void checkPermissions(String[] permissions) { ArrayList<String> targetList = new ArrayList<String>(); for (int i = 0; i < permissions.length; i++) { String curPermission = permissions[i]; int permissionCheck = ContextCompat.checkSelfPermission(this, curPermission); if (permissionCheck == PackageManager.PERMISSION_GRANTED) { Toast.makeText(this, curPermission + " 권한 있음.", Toast.LENGTH_LONG).show(); } else { Toast.makeText(this, curPermission + " 권한 없음.", Toast.LENGTH_LONG).show(); if (ActivityCompat.shouldShowRequestPermissionRationale(this, curPermission)) { Toast.makeText(this, curPermission + " 권한 설명 필요함.", Toast.LENGTH_LONG).show(); } else { targetList.add(curPermission); } } } String[] targets = new String[targetList.size()]; targetList.toArray(targets); ActivityCompat.requestPermissions(this, targets, 101); // 위험권한 요청하기 } @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case 101: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { Toast.makeText(this, "첫번째 권한을 사용자가 승인함.", Toast.LENGTH_LONG).show(); } else { Toast.makeText(this, "첫번째 권한 거부됨.", Toast.LENGTH_LONG).show(); } return; } } } }
SD카드를 사용하기 위해서는 READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE 2개의 권한이 필요합니다. 외장 저장장치 읽기,쓰기권한 입니다. 이권한은 위험 권한으로 분류되어 사용자에게 권한 부여해 달라는 대화상자를 띄워야합니다.
특정 시점에 위험 권한을 부여하는 것도 가능합니다. onCreate 메서드 안에서 권한 부여 요청을 하지만 버튼을 눌렀을 때 권한이 부여되게 할수도 있습니다.
onCreate 메서드 안에서 checkPermissions 메서드를 호출하도록 코드를 작성했습니다.
checkPermissions 메서드는 지정한 권한들에 대해서 그 권한이 부여되어 있는지를 먼저 확인합니다. 그리고 권한이 부여되지 않았다면 ArrayList 안에 넣었다가 부여되지 않은 권한들만 권한 요청을 하게 됩니다.
checkSelfPermission 메서드로 이미 권한이 부여되어 있는지 확인하도록 만들었습니다.
만약 권한이 부여되지 않았다면 requestPermissions 메서드를 호출하여 권한 부여 요청 대화상자를 띄워줍니다.
이 대화상자는 여러분이 직접 만드는 것이 아니라 requestPermissions 메서드를 호출했을 때 시스템에서 띄워주기 때문에
사용자가 수락했는지 아니면 거부했는지의 여부를 콜백 메서드로 받아 확인하는것이 필요합니다.
이렇게 권한을 요청하면 콜백 메서드로 그 결과를 받을 수 있습니다.
MainActivity.java 파일의 아래쪽에 다음과 같이 onRequestPermissionsResult 메서드를 재정의하는 코드를 추가합니다.
앱을 실행하면 다음과 같은 권한요청 대화상자가 뜨게됩니다.
다음은 안드로이드 권한의 종류 문서입니다.
https://developer.android.com/reference/android/Manifest.permission
jcher님의 새글 알림을 받으실려면 구독
제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|
Safari_18.1_for_macOS_Ventura_beta_1.dmg(619B9) 24/09/20일자 | 제로섬 | 24.09.2014:03 | 9 |
세퀘이아 15.1 beta4(24B5046f) 전체 프로그램 다운로드(24/09/2... | 제로섬 | 24.09.2005:37 | 52 |
windows & macOS / Install macOS Sequoia beta4 15.1_24B50... | 제로섬 | 24.09.2005:24 | 38 |
Apple Beta Releases 소식 (09/17일자) | 제로섬 | 24.09.1808:05 | 85 |
세퀘이아 15.0 정식(24A335) 전체 프로그램(24/09/17일자) +3 | 제로섬 | 24.09.1704:38 | 239 |
windows & macOS / Install macOS Sequoia 정식 15.0_24A335.... | 제로섬 | 24.07.1806:01 | 667 |
Apple macOS UniversalMac_15.0 정식 (24A335)복원IPSW (24/09/17... +3 | 제로섬 | 24.09.1020:58 | 159 |
Apple RC Releases 소식 24/09/10일자 | 제로섬 | 24.09.1011:27 | 232 |
Apple macOS UniversalMac_15.0 beta8 (24A5331b)복원IPSW (24/0... | 제로섬 | 24.08.3020:41 | 103 |
macOS Sonoma 14.7 RC2 (23H124) 전체 프로그램 다운로드(24/09/1... | 제로섬 | 24.08.3015:43 | 270 |
macOS Ventura 13.7 RC2 (22H123) 전체 프로그램 다운로드(24/09/... | 제로섬 | 24.08.3016:24 | 126 |
windows & macOS / Install macOS Sonoma RC2 14.7_23H124.d... +1 | 제로섬 | 23.10.1211:27 | 4867 |
windows & macOS / Install macOS Ventura RC2 13.7.0_22H123... +1 | 제로섬 | 23.10.1213:08 | 7722 |
Apple Beta Releases 소식 24/08/28일자 | 제로섬 | 24.08.2904:14 | 170 |
Apple 2024년 9월 9일 월요일, 첫 번째 가을 이벤트 & Glowti... +1 | 제로섬 | 24.08.2721:47 | 115 |
Apple M1/M2/M3 macOS Sequoia 15.1 beta4 (24B5046f)복원IPSW (2... | 제로섬 | 24.08.1320:14 | 125 |
Apple Public Releases for 소식 24/08/07일자 | 제로섬 | 24.08.0809:53 | 126 |
macOS Sonoma 14.6.1 정식 (23G93) 전체 프로그램 다운로드(24/08... +4 | 제로섬 | 24.07.3018:28 | 633 |
macOS Ventura 13.6.9 정식 (22G830) 전체 프로그램 다운로드(24/... | 제로섬 | 24.07.3018:21 | 241 |
macOS Monterey 12.7.6 정식 (21H1320) 전체 프로그램 다운로드 (... +2 | 제로섬 | 24.07.3018:04 | 189 |
Apple Public Releases for 소식 24/07/29일자 +3 | 제로섬 | 24.07.3014:14 | 115 |
Apple, macOS 15 Sequoia 공개 정보 +2 | 제로섬 | 24.07.0716:59 | 2990 |
Safari_18_정식 설치프로그램_macOS_Sonoma(619A63)&Ventura(... +1 | 제로섬 | 24.07.0619:09 | 2448 |
Apple M1/M2/M3 macOS Sonoma 14.6.1 정식 (23G93)복원IPSW (24/0... | 제로섬 | 24.06.1811:51 | 2265 |
비 지원 맥용 OpenCore-Legacy-Patcher 2.0.1 다운로드(24/09/17... +6 | 제로섬 | 23.06.0413:37 | 2.6만 |
Safari_17.6_for_Ventura&Monterey 정식 설치 프로그램 24/07... +1 | 제로섬 | 24.04.0717:28 | 3781 |
windows & macOS / Install macOS Sonoma 정식 14.6.1_22G93.... +1 | 제로섬 | 24.04.0520:26 | 3716 |
windows & macOS / Install macOS Ventura 정식 13.6.9_22G83... | 제로섬 | 24.04.0521:40 | 3499 |
windows & macOS / Install macOS Monterey 정식 12.7.6_21H1... | 제로섬 | 24.04.0522:27 | 3460 |
윈도우 11 23H2 ISO 다운로드 가능 +2 | Mactopia | 23.11.0423:27 | 1.6만 |
Windows에서 macOS 부팅 가능한 USB를 만드는 방법 +16 | 제로섬 | 23.10.0711:52 | 1.9만 |
windows & macOS / Install macOS Big Sur 11.7.10_20G1427.d... | 제로섬 | 23.07.2512:50 | 2.2만 |
여친 없는 엑팔인들을 위한 스팀 게임 몇 가지 나눔 합니다. +27 | 잠퉁이 | 23.03.0220:10 | 6.6만 |
최신 Windows 다운로드 +12 | Dokdo | 21.10.1703:35 | 4.6만 |
윈도우 필수 유틸 #1 - Hoax Eliminator 구라 제거기 +4 | Mactopia | 21.08.1017:08 | 4.4만 |
우분투 서버 설치하기 +3 | 매킨어렵 | 21.06.0404:29 | 3.5만 |
맥북프로 2014년형 업데이트 안됨 +2 | 해킨독립 | 24.09.1818:57 | 87 |
Mid 2011 Air macOS Sequoia 잘 되네요 | wmy0317 | 24.09.1821:35 | 112 |
잠퉁이 | 24.09.2012:21 | 17 | |
잠퉁이 | 24.09.2012:19 | 13 | |
잠퉁이 | 24.09.2000:11 | 81 | |
잠퉁이 | 24.09.2000:09 | 72 | |
제로섬 | 24.09.2014:03 | 9 | |
제로섬 | 24.09.2005:37 | 52 | |
제로섬 | 24.09.2005:24 | 38 | |
잠퉁이 | 24.09.1821:39 | 68 | |
wmy0317 | 24.09.1821:35 | 112 | |
해킨독립 | 24.09.1818:57 | 87 | |
제로섬 | 24.09.1808:05 | 85 | |
Nelson | 24.09.1711:45 | 97 | |
제로섬 | 24.09.1704:38 | 239 | |
제로섬 | 24.07.1806:01 | 667 | |
Nelson | 24.09.1621:58 | 50 | |
제로섬 | 24.09.1608:54 | 311 | |
해킨독립 | 24.09.1518:53 | 125 | |
잠퉁이 | 24.09.1305:34 | 101 | |
잠퉁이 | 24.09.1305:24 | 73 | |
잠퉁이 | 24.09.1306:30 | 85 | |
잠퉁이 | 24.09.1306:14 | 75 | |
잠퉁이 | 24.09.1306:11 | 49 | |
잠퉁이 | 24.09.1306:03 | 75 | |
잠퉁이 | 24.09.1117:54 | 82 | |
잠퉁이 | 24.09.1117:51 | 92 | |
잠퉁이 | 24.09.1003:22 | 94 | |
잠퉁이 | 24.09.1003:19 | 101 | |
잠퉁이 | 24.09.1003:16 | 95 | |
잠퉁이 | 24.09.1003:11 | 74 | |
잠퉁이 | 24.09.1003:08 | 74 | |
잠퉁이 | 24.09.1003:06 | 50 | |
제로섬 | 24.09.1020:58 | 159 | |
제로섬 | 24.09.1011:27 | 232 | |
Mactopia | 24.09.1011:16 | 107 | |
제로섬 | 24.09.1002:10 | 61 | |
잠퉁이 | 24.09.0800:24 | 91 | |
잠퉁이 | 24.09.0707:36 | 86 | |
잠퉁이 | 24.09.0707:34 | 64 | |
잠퉁이 | 24.09.0602:31 | 71 | |
잠퉁이 | 24.09.0602:29 | 97 | |
잠퉁이 | 24.09.0602:23 | 58 | |
잠퉁이 | 24.09.0602:21 | 62 | |
잠퉁이 | 24.09.0600:00 | 110 | |
Mactopia | 24.09.0509:15 | 84 | |
잠퉁이 | 24.09.0502:37 | 89 | |
잠퉁이 | 24.09.0500:31 | 76 | |
잠퉁이 | 24.09.0500:29 | 95 | |
잠퉁이 | 24.09.0411:56 | 79 | |
잠퉁이 | 24.09.0411:55 | 72 | |
잠퉁이 | 24.09.0411:54 | 56 | |
나일롱 | 24.09.0410:13 | 130 | |
잠퉁이 | 24.09.0312:13 | 94 | |
잠퉁이 | 24.09.0303:48 | 68 | |
잠퉁이 | 24.09.0303:44 | 104 | |
잠퉁이 | 24.09.0303:42 | 63 | |
Mactopia | 24.09.0208:19 | 160 | |
잠퉁이 | 24.09.0202:37 | 45 | |
잠퉁이 | 24.09.0202:35 | 66 | |
잠퉁이 | 24.09.0202:34 | 82 | |
잠퉁이 | 24.08.3104:12 | 88 | |
잠퉁이 | 24.08.3104:07 | 94 | |
잠퉁이 | 24.08.3104:05 | 70 | |
잠퉁이 | 24.08.3012:02 | 106 | |
잠퉁이 | 24.08.3001:48 | 137 | |
잠퉁이 | 24.08.3001:46 | 90 | |
잠퉁이 | 24.08.3001:42 | 96 | |
잠퉁이 | 24.08.3001:40 | 84 | |
잠퉁이 | 24.08.3001:22 | 163 | |
잠퉁이 | 24.08.3000:02 | 106 | |
제로섬 | 24.08.3020:41 | 103 | |
제로섬 | 24.08.3015:43 | 270 | |
제로섬 | 24.08.3016:24 | 126 | |
제로섬 | 24.08.3015:27 | 156 | |
제로섬 | 23.10.1211:27 | 4867 | |
제로섬 | 23.10.1213:08 | 7722 | |
잠퉁이 | 24.08.2900:39 | 57 | |
잠퉁이 | 24.08.2900:37 | 95 | |
잠퉁이 | 24.08.2900:35 | 59 | |
잠퉁이 | 24.08.2900:30 | 90 | |
잠퉁이 | 24.08.2900:28 | 89 |