안녕하세요.
고수님들....
content provider를 구현중에 있는데요....
현재 MycontentProvider라는 소스가 있구여.
MycontentProviderActivity 라는 소스를 구현했어요...
물론 content provider에서 DB 에 접근해서 데이터를 공유하는 프로그램을 예제로 짜고 있습니다.
=====================================================================================
MyCotentProvider 의 매니페스트 파일은 아래와 같이 작성했구여.
......
<permission android:name = "com.test.exampleprovider.permission.read"/>
<permission android:name= "com.test.exampleprovider.permission.write"/>
......
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<provider
android:name=".MyContentProvider"
android:authorities="com.test.exampleprovider"
android:readPermission="com.test.exampleprovider.permission.read"
android:writePermission="com.test.exampleprovider.permission.write"
android:multiprocess="false">
</provider>
</application>
========================================================================================
MycontentProviderActivity의 매니페스트파일은 아래와 같이 작성했습니다.
.......
<user-permission android:name="com.test.exampleprovider.permission.read"/>
<user-permission android:name="com.test.exampleprovider.permission.write"/>
........
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".MycontentProviderActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
작성했습니다.
===============================================================================================
그런데 실행을 하게 되면 .. 참고로 MyCotentProvider ,MycontentProviderActivity 올리면
아래와 같이 에러가 뜹니다.
01-04 14:58:08.072: W/dalvikvm(7858): threadid=1: thread exiting with uncaught exception (group=0x4108f9d8)
01-04 14:58:08.072: E/AndroidRuntime(7858): FATAL EXCEPTION: main
01-04 14:58:08.072: E/AndroidRuntime(7858): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test.testactivity/com.test.testactivity.MycontentProviderActivity}: java.lang.SecurityException: Permission Denial: opening provider com.test.exampleprovider.MyContentProvider from ProcessRecord{4183afc0 7858:com.test.testactivity/10088} (pid=7858, uid=10088) requires com.test.exampleprovider.permission.read or com.test.exampleprovider.permission.write
01-04 14:58:08.072: E/AndroidRuntime(7858): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1960)
01-04 14:58:08.072: E/AndroidRuntime(7858): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1985)
01-04 14:58:08.072: E/AndroidRuntime(7858): at android.app.ActivityThread.access$600(ActivityThread.java:127)
01-04 14:58:08.072: E/AndroidRuntime(7858): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1151)
01-04 14:58:08.072: E/AndroidRuntime(7858): at android.os.Handler.dispatchMessage(Handler.java:99)
01-04 14:58:08.072: E/AndroidRuntime(7858): at android.os.Looper.loop(Looper.java:137)
01-04 14:58:08.072: E/AndroidRuntime(7858): at android.app.ActivityThread.main(ActivityThread.java:4482)
01-04 14:58:08.072: E/AndroidRuntime(7858): at java.lang.reflect.Method.invokeNative(Native Method)
01-04 14:58:08.072: E/AndroidRuntime(7858): at java.lang.reflect.Method.invoke(Method.java:511)
01-04 14:58:08.072: E/AndroidRuntime(7858): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
01-04 14:58:08.072: E/AndroidRuntime(7858): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
01-04 14:58:08.072: E/AndroidRuntime(7858): at dalvik.system.NativeStart.main(Native Method)
01-04 14:58:08.072: E/AndroidRuntime(7858): Caused by: java.lang.SecurityException: Permission Denial: opening provider com.test.exampleprovider.MyContentProvider from ProcessRecord{4183afc0 7858:com.test.testactivity/10088} (pid=7858, uid=10088) requires com.test.exampleprovider.permission.read or com.test.exampleprovider.permission.write
01-04 14:58:08.072: E/AndroidRuntime(7858): at android.os.Parcel.readException(Parcel.java:1327)
01-04 14:58:08.072: E/AndroidRuntime(7858): at android.os.Parcel.readException(Parcel.java:1281)
01-04 14:58:08.072: E/AndroidRuntime(7858): at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:2243)
01-04 14:58:08.072: E/AndroidRuntime(7858): at android.app.ActivityThread.acquireProvider(ActivityThread.java:4042)
01-04 14:58:08.072: E/AndroidRuntime(7858): at android.app.ContextImpl$ApplicationContentResolver.acquireProvider(ContextImpl.java:1708)
01-04 14:58:08.072: E/AndroidRuntime(7858): at android.content.ContentResolver.acquireProvider(ContentResolver.java:939)
01-04 14:58:08.072: E/AndroidRuntime(7858): at android.content.ContentResolver.query(ContentResolver.java:315)
01-04 14:58:08.072: E/AndroidRuntime(7858): at com.test.testactivity.MycontentProviderActivity.onCreate(MycontentProviderActivity.java:52)
01-04 14:58:08.072: E/AndroidRuntime(7858): at android.app.Activity.performCreate(Activity.java:4701)
01-04 14:58:08.072: E/AndroidRuntime(7858): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1051)
01-04 14:58:08.072: E/AndroidRuntime(7858): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1924)
permission을 제대로 준 것 같은데 왜 자꾸 저 에러가 뜨는지 고수님들 조언 부탁드리겠습니다.
쓰는 방법이 잘못되었는지요 ?........