-
[ Android ] 위험 권한Android 2020. 5. 18. 18:57
이 글은 부스트코스 강의를 공부하며 요약한 글입니다.
CatServant
위험 권한
마시멜로 버전부터는 권한을 일반 권한과 위험 권한으로 나누었습니다. 위험 권한의 경우 앱이 실행된 후 사용자에게 권한 허용을 요청해야 한다. 만약 사용자가 권한을 부여하지 않으면 해당 기능은 동작하지 않는다.
위험 권한으로 분류된 주요 권한들은 대부분 개인정보가 담겨져 있는 정보에 접근하거나 개인정보를 만들어 낼 수 있는 단만의 주요 장치에 접근하는 경우에 부여되는 권한입니다.
위험 권한의 종류
분류 ( Permission Group ) 세부 권한 ( Permission ) LOCATION ACCESS_FINE_LOCATION ACCESS_CRARSE_LOCATION CAMERA CAMERA MICROPHONE RECORD_AUDIO CONTACTS READ_CONTACTS WRITE_CONTACTS GET_ACCOUNTS PHONE READ_PHONE_STATE CALL_PHONE READ_CALL_LOG WRITE_CALL_LOG ADD_VOICEMAIL USE_SIP PROCESS_OUTGOING_CALLS SMS SEND_SMS RECEIVE_SMS READ_SMS RECIEVE_WAP_PUSH RECEIVE_MMS CALENDAR READ_CALENDAR WRITE_CALENDAR SENSORS BODY_SENSORS ( 맥박 체크 ) STORAGE READ_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE Code
- MainActivity.java
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 권한이 있는지 체크 int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.RECEIVE_SMS); if (permissionCheck == PackageManager.PERMISSION_GRANTED) { // 권한이 주어져 있으면 Toast.makeText(this, "SMS 수신 권한 주어져 있음", Toast.LENGTH_LONG).show(); } else { Toast.makeText(this, "SMS 수신 권한 없음", Toast.LENGTH_LONG).show(); // 권한을 부여하자 if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.RECEIVE_SMS)) { Toast.makeText(this, "SMS 권한 설명 필요함", Toast.LENGTH_LONG).show(); } else { // 시스템에 권한 요청 -> 대화 상자 띄우기 ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.RECEIVE_SMS}, 101); } } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode) { case 101: if (grantResults.length > 0) { if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { Toast.makeText(this, "SMS 수신 권한을 사용자가 승인함", Toast.LENGTH_LONG).show(); } else if (grantResults[0] == PackageManager.PERMISSION_DENIED) { Toast.makeText(this, "SMS 수신 권한을 사용자가 거부함", Toast.LENGTH_LONG).show(); } } else { Toast.makeText(this, "SMS 수신 권한을 부여받지 못함", Toast.LENGTH_LONG).show(); } } } }
출처
'Android' 카테고리의 다른 글
[ Android ] D-Day 계산 오류 (0) 2020.05.22 [ Android ] Fragment Toolbar에서 back button 동작 안 하는 오류 (0) 2020.05.19 [ Android ] 브로드캐스트 수신자 (0) 2020.05.18 [ Android ] 스플래시 화면 ( 로딩 화면 ) (0) 2020.04.02 [ Android ] ListView (0) 2020.03.31