亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法在 Android 內部存儲中創建文件夾

無法在 Android 內部存儲中創建文件夾

飲歌長嘯 2024-01-05 10:31:16
我正在嘗試在手機的內部存儲中創建一個文件夾,但無論我做什么它都不會創建它我嘗試過的事情:將手機從電腦上拔下在清單中和以編程方式為 API 23+ 設置權限我可以找到的文件夾的每個變體:Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) Environment.getDataDirectory() 等。在每一篇文章或文章的變體中搜索類似問題嘗試了 mkdir() 和 mkdirs() 的兩種變體檢查手機是否存在文件夾該代碼還與一個按鈕綁定在一起,因此當我第二次按下它時,應該已經授予了權限請求。File sdir = new File (Environment.getExternalStorageDirectory().getpath(), "/DBTEST/");String[] PERMISSIONS_STORAGE = {        Manifest.permission.WRITE_EXTERNAL_STORAGE};ActivityCompat.requestPermissions(MainActivity.this, PERMISSIONS_STORAGE, 1);System.out.println("DIRECTORY CREATED: " + sdir.mkdirs());System.out.println("EXISTS: " + sdir.exists());System.out: DIRECTORY CREATED: falseSystem.out: EXISTS: false<manifest xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    package="com.example.testM">    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
查看完整描述

2 回答

?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

嘗試改變這一行:

File sdir = new File (Environment.getExternalStorageDirectory().getpath(), "/DBTEST/");

File sdir = new File (Environment.getExternalFilesDir(null) + "/DBTEST/");

根據開發者文檔:

getExternalStorageDirectory() - 此方法在 API 級別 29 中已棄用。為了提高用戶隱私,不推薦直接訪問共享/外部存儲設備。當應用程序以 Build.VERSION_CODES.Q 為目標時,應用程序無法再直接訪問從此方法返回的路徑。應用可以通過遷移到 Context#getExternalFilesDir(String)、MediaStore 或 Intent#ACTION_OPEN_DOCUMENT 等替代方案來繼續訪問共享/外部存儲上存儲的內容。

getExternalFilesDir(null)將返回您的應用程序存儲文件夾(內部存儲)/Android/data/your.app.name/file/

如果您想訪問某些操作系統定義的文件夾,您只需傳遞此處定義的環境常量:

https://developer.android.com/reference/android/content/Context#getExternalFilesDir(java.lang.String)

和這里

https://developer.android.com/reference/android/os/Environment

在“字段”部分下。

前任。下載將是:getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS)


查看完整回答
反對 回復 2024-01-05
?
catspeake

TA貢獻1111條經驗 獲得超0個贊

這是 Android-Q 中引入的隱私限制。當應用程序以 API 29 為目標并且應用程序不再可以直接訪問從getExternalStorageDirectory方法返回的路徑時,不推薦直接訪問共享/外部存儲設備。使用應用程序特定的目錄來寫入和讀取文件。

默認情況下,面向 Android 10 及更高版本的應用會獲得對外部存儲或范圍存儲的有限訪問權限。此類應用程序可以查看外部存儲設備中的以下類型的文件,而無需請求任何與存儲相關的用戶權限:

  • 應用程序特定目錄中的文件,使用getExternalFilesDir()訪問。

  • 應用程序從媒體商店創建的照片、視頻和音頻剪輯。


查看完整回答
反對 回復 2024-01-05
  • 2 回答
  • 0 關注
  • 301 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號