안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요 회색님~^^
오랜만에 이렇게 다시 인사 드립니다...
contentProvider가 다른 application 사이에서 데이터 공유하기 위해서 존재하는 건데요,
andorid에서 제공하는 contact, call-Log, MediaStore 외에
제가 만든 contentProvider를 다른 application에서 사용할려고 하면
어떻게 해야 하나요?
AndroidMainfest.xml에 <provider></provider>등록은 시켰거든요.
근데 기본 제공 contentProvider 처럼 uri로 접근할려고 하니 안되네요..
그래서 요지는요..
1) 기본 제공 contentProvider 처럼 permission 에 따른 접근이 되도록 할려면, permission은 어떻게 주는 지요?
- 예을 들어서 contact는 접근할려고 하면, READ_CONTACT / WRITE_CONTACT 권한이 있어야 접근할 수 있는 것처럼
제가 만든 ContentProvider에 접근할려고 할떄 이런 권한을 부여 하는 방법이 궁금합니다.
- setReadPermission() / setWritePermission () 메소드를 사용하면 되나요??
- 아니면, - <provider android:name="MembersProvider"
android:authorities="kr.co.test.events"
android:permission=""/> 해서 설정하면 되나요?
2) 다른 Application 에서 제가 만든 ContentProvider 접근하는 방법은 무엇인가요?
- URI : CONTENT_URI="content://kr.co.test.events/members"
- <provider android:name="MembersProvider"
android:authorities="kr.co.test.events" />
- 일 경우, 다른 Applicaiton에서 getContentResolver().query(uri, ...) 해서 접근하고 싶지만, 해당 uri를 인식 시킬 방법을 모르겠습니다.
다른 application에 존재하기 때문에 import kr.co.test.events; 하면 can not be resolve 라고 import 문에서 에러가 발생합니다.
방법을 좀 알려주세요... ㅜㅜ
오랜만에 이렇게 다시 인사 드립니다...
contentProvider가 다른 application 사이에서 데이터 공유하기 위해서 존재하는 건데요,
andorid에서 제공하는 contact, call-Log, MediaStore 외에
제가 만든 contentProvider를 다른 application에서 사용할려고 하면
어떻게 해야 하나요?
AndroidMainfest.xml에 <provider></provider>등록은 시켰거든요.
근데 기본 제공 contentProvider 처럼 uri로 접근할려고 하니 안되네요..
그래서 요지는요..
1) 기본 제공 contentProvider 처럼 permission 에 따른 접근이 되도록 할려면, permission은 어떻게 주는 지요?
- 예을 들어서 contact는 접근할려고 하면, READ_CONTACT / WRITE_CONTACT 권한이 있어야 접근할 수 있는 것처럼
제가 만든 ContentProvider에 접근할려고 할떄 이런 권한을 부여 하는 방법이 궁금합니다.
- setReadPermission() / setWritePermission () 메소드를 사용하면 되나요??
- 아니면, - <provider android:name="MembersProvider"
android:authorities="kr.co.test.events"
android:permission=""/> 해서 설정하면 되나요?
2) 다른 Application 에서 제가 만든 ContentProvider 접근하는 방법은 무엇인가요?
- URI : CONTENT_URI="content://kr.co.test.events/members"
- <provider android:name="MembersProvider"
android:authorities="kr.co.test.events" />
- 일 경우, 다른 Applicaiton에서 getContentResolver().query(uri, ...) 해서 접근하고 싶지만, 해당 uri를 인식 시킬 방법을 모르겠습니다.
다른 application에 존재하기 때문에 import kr.co.test.events; 하면 can not be resolve 라고 import 문에서 에러가 발생합니다.
방법을 좀 알려주세요... ㅜㅜ
2. 그냥 authority와 provider에서 정의한 데로 스트링을 만드시면 될텐데요
Uri.parse("content://contacts/people") 처럼 authority와 table만 안다면 만들어서 사용하면 됩니다.