我试图存储以前播放过的歌曲的uri,使用share d首选项。但是当为了播放歌曲而获取和重建uri时,我会收到以下错误消息:
05-03 20:43:14.642 8617-8716/com.stopwatch.appW/MediaPlayer:无法在客户端打开文件;尝试服务器端:java.lang.安全异常:权限拒绝:打开提供程序com.android.providers.media.MediaDocumentsProvider from ProcessRecord{2c95b0 8617:com.stopwatch.app/u0a175}(pid=8617, uid=10175)需要android.permission.MANAGE_DOCUMENTS或android.permission.
05-03 20:43:14.658 8617-8716/com.stopwatch.appI/MediaPlayer: setDataSource(content://com.android.providers.media.documents/document/audio: 18504)
05-03 20:43:14.661 8617-8716/com。秒表应用程序E/媒体播放器:无法创建媒体播放器
05-03 20:43:14.662 8617-8716/com。秒表带系统的应用程序。错误:java。io。IOException:setDataSource失败:状态=0x8000000
我不知道我需要Android系统。准许MANAGE\u DOCUMENTS和my IDE告诉我,这是一种仅适用于系统应用程序的权限。我的代码如下所示:
if(prefs.contains("AudioFile")){
try {
String UriString = prefs.getString("AudioFile", null);
Uri uri = Uri.parse(UriString);
mediaPlayer.setDataSource(this, uri);
Gdx.app.log("Android Media Player", "Successfully got data");
} catch (IOException e) {
e.printStackTrace();
Gdx.app.log("Android Media Player", e.getMessage());
}
try {
mediaPlayer.prepare();
Gdx.app.log("Android Media Player", "Successfully prepared content");
} catch (IOException e) {
e.printStackTrace();
Gdx.app.log("Android Media Player", e.getMessage());
}
}
我尝试过在onCreate
方法(这似乎是个坏主意)和通过另一个在按钮单击时调用的方法运行它,两者都失败了。
请注意,如果我启动应用程序并通过启动mediaPlayer的意图检索uri,请执行以下操作:
protected void onActivityResult (int requestCode, int resultCode, Intent data){
if(requestCode == MUSIC_REQUEST){
if(resultCode == RESULT_OK){
Uri myUri = data.getData();
SharedPreferences.Editor editor = prefs.edit();
editor.putString("AudioFile", myUri.toString());
editor.commit();
System.out.println(myUri);
try {
mediaPlayer.setDataSource(this, myUri);
Gdx.app.log("Android Media Player", "Succesfully got data");
} catch (IOException e) {
e.printStackTrace();
Gdx.app.log("Android Media Player", e.getMessage());
}
try {
mediaPlayer.prepare();
Gdx.app.log("Android Media Player", "Succesfully prepared content");
} catch (IOException e) {
e.printStackTrace();
Gdx.app.log("Android Media Player", e.getMessage());
}
}
}
super.onActivityResult(requestCode, resultCode, data);
}
我没有问题,即使我用mediaPlayer.setDataSource(this, Uri.parse(myUri.toString))代替。
您不能持久化Uri值,并期望它稍后工作。那些拥有内容方案的用户可以在很短的时间内访问内容。
如果您正在使用ACTION\u OPEN\u DOCUMENT获取您的Uri,您可以通过内容解析程序上的takePersistableUriPermission()请求对内容的长期访问。不过,您仍然需要处理用户可能移动或删除内容的可能性。
如果您使用ACTION_GET_CONTENT
获取Uri
,请切换到ACTION_OPEN_DOCUMENT
(如果您的minSdkVersion
为19或更高)或复制内容,然后使用您的副本。
我的项目使用MySQL、JavaFX、Spring Boot、Spring Data JP和Hibernate框架/技术。 这是我的POM文件。 这是我的。属性配置。 这是我的主课 这是stacktrace: 上下文初始化期间遇到异常-取消刷新尝试:org。springframework。豆。工厂UnsatifiedPendencyException:创建名为“org”的bean时出错。sprin
嗨,我正在尝试使用jndi数据源。下面是代码 context.xml 在spring servlet配置bean中是: 我得到这个错误 org.springframework.beans.factory.beanCreationException:创建名为“Contact Controller”的bean时出错:注入autowired依赖项失败;嵌套异常为org.SpringFramework.B
我以前从未与spring security达成过协议,但我需要使用它。我不能配置它。 我的applicationContext-security.xml: 我的web.xml: 但是我有:org.xml.sax.saxParseException;亚麻编号:61;专栏编号:227;CVC-complex-type.3.2.2:属性'data-source-ref'不允许出现在元素'security
问题内容: 我正在尝试设置一些jUnit测试。我们的数据库由服务器使用JNDI连接。我们在root.xml中有一个描述设置的xml。如何设置jUnit以连接数据库?我希望它只是从root.xml中读取内容,但是无论如何我都愿意进行设置。 问题答案: 我发现最好的方法是使用称为Simple- Jndi的 东西。 我将此添加到Maven文件中: 您可以在此处下载软件包,下载内容包含说明手册。 http
我在pom下面有这个。xml文件。我在尝试运行应用程序时收到此错误消息。未能配置数据源:“url”属性未指定,无法配置嵌入式数据源。 我在谷歌上搜索过,很少有人说这个问题不应该出现在内存数据库版本中,比如H2、Derby等。然而,我遇到了这个问题。 尝试更新application.properties 和 但是没有喘息的机会。请让我知道我错过了什么/在哪里。
运行该命令后,我没有看到任何输出,也没有看到名为的系统环境变量(它应该出现在那里吗?)。 当我尝试运行一些基本的示例代码时: 即使在手动将该值添加到系统环境变量之后,我也会得到相同的错误。