Android에서 외부 ContentProvider를 호출하지 못했습니다.

2603 단어
전언
무심결에 외부를 호출하는 ContentProvider 보고서 java.lang.SecurityException: Permission Denial: opening provider 오류를 만나 해결 방법을 기록하세요.이 블로그는 XueLong에 동시 게시된 블로그입니다.
오류 원인 및 해결 방법
오보 일지
Process: online.himakeit.testcontentprovider, PID: 6668
java.lang.SecurityException: Permission Denial: opening provider 
    online.himakeit.skylarkdemo.provider.DBSQLProvider from ProcessRecord{7dc9495 6668:online.himakeit.testcontentprovider/u0a93} 
    (pid=6668, uid=10093) that is not exported from UID 10094
    at android.os.Parcel.readException(Parcel.java:1942)
    at android.os.Parcel.readException(Parcel.java:1888)
    at android.app.IActivityManager$Stub$Proxy.getContentProvider(IActivityManager.java:4771)
    at android.app.ActivityThread.acquireProvider(ActivityThread.java:5882)
    at android.app.ContextImpl$ApplicationContentResolver.acquireProvider(ContextImpl.java:2479)
    at android.content.ContentResolver.acquireProvider(ContentResolver.java:1733)
    at android.content.ContentResolver.insert(ContentResolver.java:1533)
    at online.himakeit.testcontentprovider.MainActivity.onClick(MainActivity.java:53)
    at android.view.View.performClick(View.java:6256)
    at android.view.View$PerformClick.run(View.java:24697)
    at android.os.Handler.handleCallback(Handler.java:789)
    at android.os.Handler.dispatchMessage(Handler.java:98)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6541)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
java.lang.SecurityException: Permission Denial: opening provider 오류가 발생한 원인은 외부의 ContentProvider이 외부에 호출될 수 없기 때문이다.
해결 방법은 ContentProvider을 정의할 때 라벨에 android:exported="true" 속성을 추가하고 그 값을 true으로 설정하는 것이다.
  • android:exported의 주요 역할은 다른 응용 프로그램이 현재 구성 요소
  • 을 호출하는 것을 지원하는지 여부입니다.
  • Android의 4대 구성 요소 Activity, Service, ContentProvider, BroadcastReceiver에는 모두 android:exported이라는 속성이 있습니다.
    맨 마지막에 쓰다
    이상은 java.lang.SecurityException: Permission Denial: opening provider 문제를 어떻게 해결하는가입니다.
    만약 참고 과정에서 문제가 생기면 나의 연락처에서 나에게 질문을 할 수 있다.
    안드로이드에 대한 지식을 계속 소개할 테니 제 블로그의 업데이트에 계속 관심을 가져 주십시오.
    전재: XueLong의 블로그 안드로이드에서 외부 ContentProvider를 호출하지 못했습니다.
  • 좋은 웹페이지 즐겨찾기