簡體   English   中英

Android打開失敗:在數據/數據/包/文件中寫入文件時,EACCES(權限被拒絕)

[英]Android open failed: EACCES (Permission denied) when writing file in data/data/package/files

我要例外了

java.io.FileNotFoundException:/data/data/XX/files/permissions.xml:打開失敗:EACCES(權限被拒絕)

嘗試將文件從SD卡復制到應用數據位置時。 我的代碼是

File copy = new File((getActivity()
                       .getApplicationContext().getFileStreamPath("permissions.xml")
                        .getPath()));
if (!copy.exists()) {
  try {
    copy.getParentFile().mkdirs();
    copy.createNewFile();
  } catch (Exception err) {
    err.printStackTrace();
  }
}
copyFileUsingChannel(xmlFile, copy);

方法copyFileUsingChannel被調用方法copyFileUsingStream直接。 我在清單中聲明了讀寫權限

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="XX">

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <application
...

我不知道為什么會拋出該異常。 我正在從應用程序包中創建文件。 應該由擴展非應用類引起嗎? 謝謝你的幫助。

編輯:我意識到有趣的事實:文件已創建,但無法將內容寫入其中

您是否授予運行時權限? 這是一個文檔請求應用程序權限

我通過將文件從permissions.xml重命名為prms.xml來解決了問題。 好像是android的保留字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM