안녕하세요.

 고수님들....



 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을 제대로 준 것 같은데 왜 자꾸 저 에러가 뜨는지 고수님들 조언 부탁드리겠습니다.


쓰는 방법이 잘못되었는지요 ?........