2016-06-20 1 views
0

이미 저장된 비디오를 녹화하거나 선택하는 옵션을 제공하는 APP에서 작업하고 있습니다. 문제없이이 작업을 수행 할 수 있습니다. 그러나 활동을 닫고 다시 열면 내 활동이 URI에 다시 액세스 할 수 없습니다.사용 권한 거부 : API 21의 MediaDocumentsProvider를 엽니 다.

나는 예외를 얻을 : D/MediaPlayer를 : setDataSource에, SecurityException가 무슨 일이 생긴 :

java.lang.SecurityException: Permission Denial: opening provider com.android.providers.media.MediaDocumentsProvider from ProcessRecord{2e396c8 6917:com.rahul.android.casteeng/u0a145} (pid=6917, uid=10145) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS 
at android.os.Parcel.readException(Parcel.java:1540) 
at android.os.Parcel.readException(Parcel.java:1493) 
at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:3654) 
at android.app.ActivityThread.acquireProvider(ActivityThread.java:5299) 
at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2966) 
at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1495) 
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1115) 
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:970) 
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:897) 
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1108) 
at android.widget.VideoView.openVideo(VideoView.java:376) 
at android.widget.VideoView.access$2100(VideoView.java:73) 
at android.widget.VideoView$7.surfaceCreated(VideoView.java:657) 
at android.view.SurfaceView.updateWindow(SurfaceView.java:682) 
at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:200) 
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:921) 
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2214) 
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1230) 
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6748) 
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:777) 
at android.view.Choreographer.doCallbacks(Choreographer.java:590) 
at android.view.Choreographer.doFrame(Choreographer.java:560) 
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:763) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:145) 
at android.app.ActivityThread.main(ActivityThread.java:6117) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 

이미

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

어떤 제안이 도움이 될 것으로 AndroidMenifest.xml에 권한을 구성했습니다. 미리 감사드립니다!

+0

API 23에 대해 컴파일 중이십니까? 만약 그렇다면 당신은 런타임 허가가 필요합니다 –

+0

그것은 당신이 "android.permission.MANAGE_DOCUMENTS"가 필요하다고 말하는 것입니다 .. –

+0

이것을 확인하십시오 : http://stackoverflow.com/questions/22178041/getting-permission-denial-exception – Vickyexpert

답변

1

런타임 권한을 추가하려고했지만 아무 것도 작동하지 않았습니다. 내 Samsung 탭을 업데이트했으며이 문제를 해결 한 새로운 업데이트처럼 보입니다.