본문 바로가기

Android

2/24 #2

반응형

Contents Provider 
Binder를 사용하여 구현해 놓은 표준 API

provider의 생명주기는 resolver가 호출하면 살아났다가 query를 return 하고 죽는다.

Provider
Manifest.xml
<provider android:name=".MyProvider" android:authorities="org.kandroid.sample.Provider" />

DB를 핸들링 하듯이 API를 호출한다.

"content://".

Resolver 에서 provider에 요청을 하여 
cursor.requery();
getCOntentResolver().notifyChange(url.null)


Query를 만드는 2가지 방법
ContentResolver.query()
Activity.managedQuery()

동일한 파라미터
managed query는 리턴받은 cursor를 Activity lifecycle에 영향을 받는다.
만약 Activity 가 재구동 되면 managed query는 새롭게 재구성하나.

ContentProvider 필수 구성 항목
DB, scheme 선언
query()
insert()
update()
delite()
onCreate()
onre=ate


Security and Permissions --> 잘 이해 안된다 다시 봐야할거 같다.

debug key 로 sign 했을 때는 마켓에 올라가지 못함

use Permission

선언
강제 enforce
Permission을 사용하는 쪽에서 protection Level
signature level 이 같고 같은 signing key를 갖고 있으면 권한이 use Permission이 선언되지 않은 쪽에 강제로 Permission이 적용됨
사용

per uri permissions



URI permissions

intent에 flag로 permission을 넣고
start intent를 날린다.

받는 쪽에서 permission check를 하도록 되어있다면? 없으면 접근 불가

Binary data 관련

public ParcelFileDescriptor openFile(Url uri, String mode){

return openFileHelper(uri, mode)
}