본문 바로가기

Android

[8일차] 6.0이상 임의적 퍼미션설정

Provider


내가 가진 데이터를 다른앱에서 접근할 수 있도록 하는거.


일정 연락처, 히스토리 이런거, 


앱에서 접근하려면



컨텐트 프로바이더를 만들어 놓으면 다른 어플리케이션이 가져간다. 



데이터 베이스 같이 결과가 나온다. 



커서라는 형태로 넘어온다. 



뒤에가서 데이터베이스에서 배우고 다시 할거다. 



grantUriPermissions 액티비티가 해당하는 데이터에 접근할 수 있도록 하는 속성



퍼미션 정의 

Uri값

데이터 추가 하고 뭐 변경, 삭제 할 수있다. 


프로바이더는 로더를 이용해서 많이 한다. 이건뒤에가서 한다. 



프로바이더 생성하는거는 관심있으면 읽어보면된다. 


컨텐트 프로바이더는 내가만든 데이터를 다른 앱에서 접근하게 만드는 것


Menifest 내 앱에 대한 정보를 기술하고 있는거다. 

권한정보

어플리케이션이 정의한 권한 - 퍼미션

프로파일리을 위해 필요한 instrumentation  - 이건 테스트를 위해 하는건데 테스트를 할때, 붙였다 뗄때

 문제가 생기지 않기 위해, 테스트를 가진 위치를 지정해준다. 음... 

 이외에 것들은 gradle이 가지고 있다가 빌드 할 때 추가한다. 


menifest는 반드시 한개의 어플리케이션 태그를 가진다. <appilcation>


RuntimePermission 처리


퍼미션이라는 건, 이 앱이 어떤 기능, 어떤 데이터에 접근하겠다는 걸 사용자에게 알려주는거,

윈도우는 보안에 대해 퍼미션을 안해줘서, 보안에 취약하다고 한다. 

특정한 리소스나 데이터를 접근하려고 할때, 안드로이드는 승인메세지를 띄운다. 

설치되는 시점에 승인을 한다. 

그게 문제여서 안드롱이드 6.0부터 권한승인 시점을 바꾼다. 사용하는 시점에 승인을 한다. 

이 권한이 있는지 확인한 다음에 써야한다. 제약이 있는 리소스에 접근을 하려면, 그 때 권한을 획득했는지 체크 할 수 있다. checkSellPermission 이라고 한다. 

권한이 없으면, 권한 획득을 해야한다. 이걸 requestPermission 함수를 통해 획득을 한다. 


아 그렇구나 ~~~ 이거때문에 획득하는구나 ..

이런거때문에 권한획득 메카니즘을 알아야한다. 

shouldShowRequestPermissionRationable()로 퍼미션위해 사용자에게 Ui로 보여줘야 한다. 


실습


이 퍼미션이 있으면ActivityCompat.checkselfPermission (this,Manifest.permission.Write_exter)
만약없으면 퍼미션 획득해야된다. 

ActivityCompat.shouldshow...(this,Manifest.permission...,ture) //true면 사용자에게 설명해야된다. 

AlerDialog생성해서 보여준다. 


'Android' 카테고리의 다른 글

[8일차] ButterKnife  (0) 2016.07.22
[8일차]스타일과 테마  (0) 2016.07.22
[8일차]글로벌리시버, 로컬리시버  (0) 2016.07.22
[7일차]receiver  (0) 2016.07.21
[7일차]서비스  (0) 2016.07.21