簡體   English   中英

Android 文件系統 - 即使我有權限也無法寫入文件

[英]Android File System - Can't write on file even though I have permissions

我正在嘗試制作一個以編程方式刪除文件的程序。 我的程序具有讀寫權限。

代碼可以過度簡化為:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    File asd = new File("/storage/emulated/0/Pictures/IMG_20210228_165109.jpg ");
    System.out.println(asd.exists());//true
    System.out.println(asd.setWritable(true));//true
    System.out.println(asd.canWrite());//false
    System.out.println(asd.delete());//false
}

是的,我對示例進行了硬編碼,但你明白了,真正的程序不是硬編碼的。 示例和實際程序都無法像這樣刪除文件。

我嘗試了 android 工作室的 Android 模擬器和我的手機。 兩次結果都是相同的——exists() 和 setWritable() 為 true,但 canWrite() 和 delete() 為 false。

為什么會這樣? (我手機的android版本是10,模擬器是11。)

三件事。

在清單中請求讀寫權限。

添加代碼以讓用戶在運行時確認這些權限。

對於 Android 10 設備,請在清單中請求舊版外部存儲。

在 Android 11 設備上,應用程序只能刪除自己的文件。

暫無
暫無

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

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