簡體   English   中英

如何在三星 A51 Android 10 的“內部存儲”文件夾(主要外部存儲)中創建文件?

[英]How do I create a file in the “Internal Storage” folder (Primary External Storage) of my Samsung A51 Android 10?

我了解在當前的 SDK 中,我的應用程序的外部存儲文件是在 /data/data/"package" 文件夾中創建的。 但是,我正在與另一個我無法控制的應用程序集成,它從我的 Android 10 (R) 手機上的“內部存儲”(哪個是主要外部存儲?AARG:.)文件夾中讀取。 我已經搜索了 2 天,現在如何在標有“內部存儲”(我的文件-> 內部存儲)的文件夾中創建一個 simple.csv 文件,但根本找不到獲取該位置路徑的解決方案。

我將我的 Android Studio 設置為 minSdkVersion 為 16,complileSdkVersion 為 28,所以至少我可以使用一些早期的文件管理方法。 我希望我的應用程序能夠在至少 3 年或更新的手機/平板電腦上運行。 select 不需要用戶界面(選擇器 - 新文檔建議使用)來保存文件,只需創建一個文件即可。 我是一名老 Java 程序員,但對 Android 來說是新手。 大多數帖子都指向我們在超過 28 個 SDK 中丟失的已棄用功能。

我了解在當前的 SDK 中,我的應用程序的外部存儲文件是在 /data/data/"package" 文件夾中創建的。

不,那是內部存儲

但是,我正在與另一個我無法控制的應用程序集成,它從我的 Android 10 (R) 手機上的“內部存儲”(哪個是主要外部存儲?AARG: :) 文件夾中讀取

該應用程序將需要盡快更新。

我已經搜索了 2 天,現在如何在標記為“內部存儲”(我的文件-> 內部存儲)的文件夾中創建一個 simple.csv 文件,並且根本找不到獲取該位置路徑的解決方案

對於 Android 10 及以下版本,您可以使用Environment.getExternalStorageDirectory()作為外部存儲的根目錄。 請注意,對於 Android 10 本身,您需要在<application>元素中添加android:requestLegacyExternalStorage="true"

在 Android 11+ 上,您不能再使用文件系統 API 寫入外部存儲的根目錄,除非您持有MANAGE_EXTERNAL_STORAGE 如果您計划通過 Play 商店(也可能在其他地方)分發您的應用程序,該權限將需要使用理由。

select 不需要用戶界面(選擇器 - 新文檔建議使用)來保存文件

用戶可能不同意您的觀點。 谷歌絕對不同意你的看法。 在 Android 11 上,如果您不希望您的應用被 Play 商店禁止,您將需要使用ACTION_CREATE_DOCUMENTACTION_OPEN_DOCUMENT_TREE並允許用戶決定用戶的文件在用戶設備上的位置。

大多數帖子都指向我們在超過 28 個 SDK 中丟失的已棄用功能。

Android 中的“已棄用”並不總是意味着“失敗”。 它始終意味着“Google 希望您考慮另一個選項。例如, Environment.getExternalStorageDirectory()仍然存在,即使在 Android 11 中也是如此。它的用處不大,Google 更希望您使用StorageVolume上的方法反而。

暫無
暫無

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

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