MediaStore.Audio.Media.EXTERNAL_CONTENT_URI报告为未知URI

时间:2016-08-10 04:26:08

标签: android file android-contentprovider

Uri uri = contentResolver.insert(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, audioValues);

在某些设备产量

  

java.lang.UnsupportedOperationException:未知URI:content:// media / external / audio / media          在android.app.ActivityThread.handleCreateService(ActivityThread.java:2887)          在android.app.ActivityThread.-wrap4(ActivityThread.java)          在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1427)          在android.os.Handler.dispatchMessage(Handler.java:102)          在android.os.Looper.loop(Looper.java:148)          在android.app.ActivityThread.main(ActivityThread.java:5422)          在java.lang.reflect.Method.invoke(Method.java)          在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)          在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)   由java.lang.UnsupportedOperationException引起:未知URI:content:// media / external / audio / media          在android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:167)          在android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)          在android.content.ContentProviderProxy.insert(ContentProviderNative.java:476)          在android.content.ContentResolver.insert(ContentResolver.java:1231)          at company.app.MainService.setupFilesForAudioRecording(MainService.java:388)          at company.app.MainService.onCreate(MainService.java:239)          在android.app.ActivityThread.handleCreateService(ActivityThread.java:2877)          在android.app.ActivityThread.-wrap4(ActivityThread.java)          在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1427)          在android.os.Handler.dispatchMessage(Handler.java:102)          在android.os.Looper.loop(Looper.java:148)          在android.app.ActivityThread.main(ActivityThread.java:5422)          在java.lang.reflect.Method.invoke(Method.java)          在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)          在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

我不明白我怎么可能得到错误。 MediaStore.Audio.Media.EXTERNAL_CONTENT_URI如何成为未知的URI?这是设备没有外部存储的情况吗?

Developer docs说:

  

外部存储并非始终可用,因为用户可以将外部存储装载为USB存储设备,并在某些情况下将其从设备中删除。

但这似乎是一种非常罕见的情况。

1 个答案:

答案 0 :(得分:1)

此例外与pathresource的{​​{1}}有关。请点击link查看代码示例。

编辑:某些设备可能没有外部存储器,因此您应该在执行任何存储操作之前添加几个检查。

directory