Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mediaplayer无法打开已解析的URI_Java_Android_Android Permissions - Fatal编程技术网

Java Mediaplayer无法打开已解析的URI

Java Mediaplayer无法打开已解析的URI,java,android,android-permissions,Java,Android,Android Permissions,试图使用Uri.parse打开一个文件,但我一直被拒绝访问它。我对到底出了什么问题感到很困惑 Manifest.xml为了可读性而被裁剪 <application> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

试图使用Uri.parse打开一个文件,但我一直被拒绝访问它。我对到底出了什么问题感到很困惑

Manifest.xml
为了可读性而被裁剪

<application>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</application>
实际误差:

10-30 01:11:38.640 4293-4293/?W/MediaPlayer:无法在客户端打开文件;正在尝试服务器端:java.io.FileNotFoundException:无内容提供程序:/storage/1A0C-331C/victamjpeg.sdp

10-30 01:11:38.640 4293-4293/?W/VideoView:java.io.FileNotFoundException:/storage/1A0C-331C/victamjpeg.sdp:open失败:EACCES(权限被拒绝)

10-30 01:11:38.640 4293-4293/?W/VideoView:at java.io.FileInputStream.(FileInputStream.java:76) 10-30 01:11:38.640 4293-4293/? W/VideoView:at java.io.FileInputStream.(FileInputStream.java:76)


看起来我没有阅读它的权限,但我必须根据我的知识设置该权限。从
adb shell
执行
ls-l
可以证明文件位于
/sdcard/victamjpeg.sdp
并由root用户拥有

使用权限标记需要位于应用程序标记之外。

使用权限标记需要位于应用程序标记之外。

首先,您的
元素似乎位于错误的位置。如果您的
targetSdkVersion
为23或更高,则他们必须是
的子级,以及
的同级。

首先,您的
元素似乎位于错误的位置。如果您的
targetSdkVersion
为23或更高,则他们必须是
的孩子,同龄人。

删除“/”此或更改为“\”删除“/”此或更改为“\”谢谢@commonware-King of-SO.)当我修复了那些愚蠢的bug并回滚到API级别22时,它就工作了。正在运行API 23,但认为权限已更改。谢谢@commonware-King of SO.。)当我修复了那些愚蠢的bug并回滚到API级别22时,它就工作了。正在运行API 23,但认为权限已更改。
Uri video = Uri.parse(Environment.getExternalStorageDirectory()
               .getAbsolutePath()+"/victamjpeg.sdp");

videoView.setVideoURI(video);
Uri video = Uri.parse(Environment.getExternalStorageDirectory().getAbsolutePath()+"/victamjpeg.sdp");
Uri video = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "victamjpeg.sdp"));