Java 从外部存储器读取硬编码Uri
我试图从外部存储器中读取json文件,但没有成功。我得到了一个错误:Java 从外部存储器读取硬编码Uri,java,android,Java,Android,我试图从外部存储器中读取json文件,但没有成功。我得到了一个错误: Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from ProcessRecord{bfaa1d6 26301:com.plm.valdecillasurdemo/u0a284} (pid=26301, uid=10284) requires that you obtain access using
Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from ProcessRecord{bfaa1d6 26301:com.plm.valdecillasurdemo/u0a284} (pid=26301, uid=10284) requires that you obtain access using ACTION_OPEN_DOCUMENT or related API
Uri
有效(因为DocumentsProvider
没有做任何工作来授予它,所以它将无效)。除此之外,用户可能在您硬编码的位置没有文档
我如何解决这个问题
使用ACTION\u OPEN\u DOCUMENT
并允许用户选择要删除的文档
或者,使用可以跨操作系统版本读写的文件系统位置,主要是在上下文中定义的文件系统位置:getFilesDir()
,getCacheDir()
,getExternalFilesDir()
,getExternalCacheDir()
,等等。在这种情况下,您将不需要使用Uri
值。您是否尝试过该方法?