2 回答

TA貢獻(xiàn)1799條經(jīng)驗 獲得超8個贊
嘗試改變這一行:
File sdir = new File (Environment.getExternalStorageDirectory().getpath(), "/DBTEST/");
到
File sdir = new File (Environment.getExternalFilesDir(null) + "/DBTEST/");
根據(jù)開發(fā)者文檔:
getExternalStorageDirectory() - 此方法在 API 級別 29 中已棄用。為了提高用戶隱私,不推薦直接訪問共享/外部存儲設(shè)備。當(dāng)應(yīng)用程序以 Build.VERSION_CODES.Q 為目標(biāo)時,應(yīng)用程序無法再直接訪問從此方法返回的路徑。應(yīng)用可以通過遷移到 Context#getExternalFilesDir(String)、MediaStore 或 Intent#ACTION_OPEN_DOCUMENT 等替代方案來繼續(xù)訪問共享/外部存儲上存儲的內(nèi)容。
getExternalFilesDir(null)
將返回您的應(yīng)用程序存儲文件夾(內(nèi)部存儲)/Android/data/your.app.name/file/
如果您想訪問某些操作系統(tǒng)定義的文件夾,您只需傳遞此處定義的環(huán)境常量:
和這里
https://developer.android.com/reference/android/os/Environment
在“字段”部分下。
前任。下載將是:getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS)

TA貢獻(xiàn)1111條經(jīng)驗 獲得超0個贊
這是 Android-Q 中引入的隱私限制。當(dāng)應(yīng)用程序以 API 29 為目標(biāo)并且應(yīng)用程序不再可以直接訪問從getExternalStorageDirectory方法返回的路徑時,不推薦直接訪問共享/外部存儲設(shè)備。使用應(yīng)用程序特定的目錄來寫入和讀取文件。
默認(rèn)情況下,面向 Android 10 及更高版本的應(yīng)用會獲得對外部存儲或范圍存儲的有限訪問權(quán)限。此類應(yīng)用程序可以查看外部存儲設(shè)備中的以下類型的文件,而無需請求任何與存儲相關(guān)的用戶權(quán)限:
應(yīng)用程序特定目錄中的文件,使用getExternalFilesDir()訪問。
應(yīng)用程序從媒體商店創(chuàng)建的照片、視頻和音頻剪輯。
添加回答
舉報