티스토리 뷰
일반 권한과 위험 권한
1 2 3 4 5 6 7 8 | 1. 위험 권한은 실행시 권한 부여 특정 권한은 메니페스트에 등록 2. 마쉬멜로우 버전부터 ~를 허용할까요? 라는식으로 위험 권한을 띄워준다. 3. 이 권한을 띄워주는것을 해보도록 하자. (마쉬멜로우 이후 부터) 대표적인 위험 권한들 - 위치 , 카메라, 마이크, 연락처, 전화 ,문자, 일정, 센서 | cs |
- 위험 권한 부여 예제)
1.Main.Java파일에서 실습
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 package com.example.example_smsreceiver;import android.Manifest;import android.content.pm.PackageManager;import android.support.annotation.NonNull;import android.support.v4.app.ActivityCompat;import android.support.v4.content.ContextCompat;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.Toast;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 권한 처리 관련 부분// 권한 O 경우int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.RECEIVE_SMS);if (permissionCheck == PackageManager.PERMISSION_GRANTED) {Toast.makeText(this, "SMS 수신권한 주어져있음", Toast.LENGTH_LONG).show();} else { // 권한 X 경우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 //권한 부여를 시스템에게 요청한다.}, 1);}}}// 권한을 받으면 우리쪽으로 알려줘야 한다 이때, callback 함수 사용//generate -> override -> onRequestPermissionResult메소드 사용@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {super.onRequestPermissionsResult(requestCode, permissions, grantResults);switch (requestCode){case 1: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();}}}}}cs
2. Permission 단말에서 SMS 허용불가로 바꾸어 주어야만 SMS 권한 확인을 할 수 있다.
3. 혹시 제대로된 값이 나오지 않는다면, Gradle Script에서 TargetSdkVersion을 25로 바꾸어 준다음에 실행 해본다.
4. 실행 결과
'Android' 카테고리의 다른 글
[Android] 키 입력 이벤트 처리하기 (0) | 2017.09.24 |
---|---|
[Android] 다양한 위젯과 이벤트 활용하기(터치이벤트) (0) | 2017.09.24 |
[Android] 브로드캐스트 수신자 (1) | 2017.09.23 |
[Android] 서비스(Service) (0) | 2017.09.22 |
[Android] 수명주기에 따른 상태 변화 (0) | 2017.09.22 |
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 노드
- programming
- 프로그래밍
- 알고리즘
- Android
- 감자코딩
- db
- 개발하는 관광이
- node.js
- 감자개발자
- Controller
- 백준
- 초보자를 위한 C언어 300제
- 백준알고리즘
- Algorigm
- MVC
- TensorFlow
- 학교
- node
- 코드엔진
- 머신러닝
- BFS
- Spring
- 복습
- 리버싱
- 텐서플로우
- C langauge
- C언어
- 안드로이드
- 스프링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함