2014-09-19 1 views
1

두 개의 앱이 있습니다. 두 가지 중 하나에는 매력처럼 작동하는 맞춤형 콘텐츠 제공 업체가 있습니다.다른 앱에서 사용자 정의 컨텐츠 공급자 액세스

APP A -> 공급자에서

모두의 데이터를 필요로 한이 시나리오에서 잘 작동 - 공급자

APP B와> 한 :

1 : 앱을 설치 A를

2 :

012 :이처럼 그것을 할 때 응용 프로그램 B

설치 3,516,

1 : 설치 응용 프로그램 B

2 : 응용 프로그램 설치합니다

나는 오류를 얻을 :

내 권한이 명확 매니페스트 파일에 명시하고있는 경우 작동하기 때문에 그들은 올바른된다
09-19 13:07:22.576: E/AndroidRuntime(14621): Caused by: java.lang.SecurityException: Permission Denial: opening provider 
uk.co.ringsizer.ui.BirthProvider from ProcessRecord{450c14c8 14621:uk.co.gemtv/u0a360} 
(pid=14621, uid=10360) requires com.eir.provider.Size.READ_DATABASE 
or com.eir.provider.Size.WRITE_DATABASE 

I 다른 순서로 앱을 설치하십시오.

처음으로 콘텐츠 제공 업체를 사용하고 있으며 비교적 안드로이드에 대한 새로운 기술이므로 숙련 된 개발자에게는 문제가 명백 할 수 있습니다.

아이디어가 있으십니까? 다른 사람이 이전에 같은 문제를 경험 한 적이 있습니까?

미리 감사드립니다.

+0

이 예외를 catch하고 사용자에게 앱을 다시 설치하라고 알려줍니다.이 작업은 http://code.google.com/p/android/issues/detail?id에서 수행 할 수있는 유일한 방법입니다. = 25906 – Selvin

답변

2

사용자 정의 <permission>을 정의하는 앱은 <uses-permission>을 통해 앱을 요청하기 전에 설치해야합니다. 잘못된 순서로 설치된 경우 <uses-permission> 앱에 권한이 없으므로 제거하고 다시 설치해야합니다.

Custom permissions in general are risky for SDK apps.

+0

PUBLIC 공유 환경 설정이 더 이상 사용되지 않으므로 내가 사용할 수있는 유일한 것은 컨텐츠 제공자입니다. 당신은 비슷한 것을 제안합니까? – user3328051

+0

@ user3328051 : 문제는 'ContentProvider'사용과 관련이 없습니다. 사용자 지정 권한과 관련된 모든 IPC에 동일한 문제가 발생합니다. 또한,' '을 가진 앱은 사용자가 다른 앱을 원하지 않는 경우, 다른 앱을 설치할 수없는 경우 (예 : 자신의 기기와 호환되지 않는 경우), 다른 앱을 설치하고 나중에 제거하는 경우를 처리해야합니다 app 등 – CommonsWare

+0

4 년 후에 찌를 수 밖에 없지만 LoaderManager를 사용할 때 SecurityException을 처리하는 방법 – Pankaj