안녕하세요.
Content Provider를 이용해서 A앱의 데이터를 B앱에서 조회가능하게 구현을 했는데,
설치 후 실행하면 아래와 같은 퍼미션 에러가 발생합니다.
Caused by: java.lang.SecurityException: Permission Denial: opening provider test.a.content.Provider from ProcessRecord{ad9fbf1 29497:test.a/xxx } (pid=29497, uid=10759) requires test.b.READ_DATABASE
그런데 늘 발생하는게 아니라 설치 순서에 따라 발생해서 문의드립니다.
A앱을 먼저 설치 후 B앱 설치 시에는 퍼미션 에러가 발생하지 않는데,
B앱을 설치 후 A앱 설치 하고 실행하면 퍼미션 에러가 발생하네요.
B앱 설치 시 A앱이 있으면 A앱에 대한 데이터베이스 접근권한 설명이 뜨는데,
A앱이 설치되지 않은 상태에서 B앱 설치 시 위 권한 설명이 뜨지 않습니다.
혹시 따로 설정을 해줘야 하는 부분이 있는지요?
고수님들의 조언을 구합니다. ㅠ.ㅠ
아래는 앱에 구현한 퍼미션 설정입니다.
### A app manifest ###
<permission android:name="test.a.READ_DATABASE" android:protectionLevel="normal" />
<provider
android:name=".content.Provider"
android:authorities="test.a.Provider"
android:exported="true"
android:readPermission="test.a.READ_DATABASE"/>
### B app maniest ###
<uses-permission android:name="test.a.READ_DATABASE" />