我有一個安卓應用程式已經在playstore上可用。它是一個使用本地主機在PC和Android之間傳輸檔案的應用程式。我在其中使用了以下java功能:
創建目錄/檔案/顯示檔案串列和許多其他檔案功能(追加)。
創建目錄/檔案/顯示檔案串列和許多其他檔案功能(追加、位元組讀/寫等):
file.mkdir
directory.listFiles()。
file.createNewFile()
我也曾把
requestLegacyExternalStorage="true"。
在給予足夠的外部存盤讀寫權限后,它在android 10上作業正常。
但問題是,這些在android 11上將無法作業,因為requestLegacyExternalStorage將無法作業。我已經使用了MANAGE_EXTERNAL_STORAGE,應用程式作業完美,但問題是Playstore不允許它。(不知道為什么他們拒絕更新)
我也使用了get_EXTERNAL_STORAGE,但問題是Playstore不允許。
我還使用了getExternalFilesDir,它作業得很完美,但不喜歡資料在android檔案夾中,如果應用被洗掉,就會被洗掉。
我也嘗試過使用下載位置,它也能作業,但問題是getExternalStorageDirectory已被棄用:
我也嘗試過使用下載位置,它也能作業。
File file = new File(Environment. getExternalStorageDirectory() "/" Environment.DIRECTORY_DOWNLOADS,"FileChat")。)
所以我想問的是,我如何管理/使用android 11的檔案庫來讀/寫/創建/洗掉檔案和目錄。它不應該在android檔案夾中,因為這將在應用程式被洗掉后被洗掉。我可以使用公共目錄,如下載嗎?如果我可以,那么getExternalStorageDirectory()的替代方法是什么?
我不需要讀取用戶資料。我只想有一個目錄,應用程式可以在其中存盤檔案。讀取功能是有效的,因為檔案是由用戶使用意圖挑選的。
提前感謝。
uj5u.com熱心網友回復:
在Android 11中,共享存盤的頂級目錄寫入訪問是不可用的,但是你可以使用現有的檔案API來訪問媒體和下載集合檔案夾,如/Pictures, /Downloads, /DICM等。我們不可能將您的應用程式創建自己的檔案夾作為頂級目錄,但我們可以在默認的收集檔案夾中創建一個專門的子目錄。
為了使您的應用程式在 Android 10 上按預期運行,requestLegacyExternalStorage標志也將是必需的,因為 Android 10 上對共享存盤的訪問僅通過 MediaStore APIs 進行限制。
uj5u.com熱心網友回復:
如果傳輸只是為了你的應用程式自己的檔案,那么把它們放在
File file = new File(Environment. getExternalStoragePublicDirectory(DIRECTORY_DOCUMENTS),"FileChat")。)
或者使用存盤訪問框架讓用戶在外部存盤(包括可移動的微型SD卡)上選擇和/或創建一個目錄。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/310446.html
標籤:
上一篇:安卓11存盤訪問和Java檔案庫
下一篇:我怎樣才能在這張表上修復對齊?
