我在应用中录音,然后让系统的音乐播放软件播放报错:
java.lang.SecurityException: Permission Denial: opening provider android.support.v4.content.FileProvider from ProcessRecord{1df216e 31232:com.miui.player/u0a30} (pid=31232, uid=10030) that is not exported from UID 10207
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2815)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2893)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1616)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6650)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:818)
Caused by: java.lang.SecurityException: Permission Denial: opening provider android.support.v4.content.FileProvider from ProcessRecord{1df216e 31232:com.miui.player/u0a30} (pid=31232, uid=10030) that is not exported from UID 10207
at android.os.Parcel.readException(Parcel.java:2005)
at android.os.Parcel.readException(Parcel.java:1951)
at android.app.IActivityManager$Stub$Proxy.getContentProvider(IActivityManager.java:4858)
at android.app.ActivityThread.acquireProvider(ActivityThread.java:5941)
at android.app.ContextImpl$ApplicationContentResolver.acquireProvider(ContextImpl.java:2521)
at android.content.ContentResolver.acquireProvider(ContentResolver.java:1749)
at android.content.ContentResolver.acquireContentProviderClient(ContentResolver.java:1824)
at com.xiaomi.music.sql.SqlUtils.query(SqlUtils.java:518)
at com.xiaomi.music.sql.SqlUtils.query(SqlUtils.java:576)
at com.miui.player.phone.ui.AudioPreview.scanFromProvider(AudioPreview.java:138)
at com.miui.player.phone.ui.AudioPreview.launch(AudioPreview.java:118)
at com.miui.player.phone.ui.AudioPreview.permissionCheck(AudioPreview.java:526)
at com.miui.player.phone.ui.AudioPreview.onCreate(AudioPreview.java:92)
at android.app.Activity.performCreate(Activity.java:7098)
at android.app.Activity.performCreate(Activity.java:7089)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2768)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2893)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1616)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6650)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:818)
报这个错是因为请求intent没有设置临时读取的权限:
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);//允许临时的读
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION| FLAG_GRANT_WRITE_URI_PERMISSION);//允许临时的读和写