簡體   English   中英

C++ Builder 11.1 Android 無法將文件寫入共享文檔文件夾

[英]C++ Builder 11.1 Android can't write a file to the Shared Documents folder

我在使用 C++ Builder 11.1 Android 嘗試將文件寫入共享文檔文件夾時遇到困難。 它適用於 C++ Builder 10.3.1,但不適用於 11.1

我在項目選項對話框中正確設置了權限:危險 - 讀取外部存儲 = true 危險 - 寫入外部存儲 = true

在 OnFormCreate 方法中,我輸入了必要的運行時權限,如下所示:

String FPermREAD;
String FPermWRITE;
DynamicArray<String> permissions;

FPermREAD  = JStringToString(TJManifest_permission::JavaClass->READ_EXTERNAL_STORAGE);
FPermWRITE = JStringToString(TJManifest_permission::JavaClass->WRITE_EXTERNAL_STORAGE);

permissions.Length = 2;
permissions[0] = FPermREAD;
permissions[1] = FPermWRITE;

PermissionsService()->RequestPermissions(permissions, LocationPermissionRequestResult);

在寫入文件的例程中...

AnsiString SharedPath;
AnsiString FileName;
FILE *OutStream;

SharedPath = System::Ioutils::TPath::GetSharedDocumentsPath(); 
// SharedPath = "/storage/emulated/0/Documents"

FileName = SharedPath +"/"+MyFileName;
OutStream = fopen(FileName.c_str(),"wb");  // This fails in 11.1 but not in 10.3.1
if(OutStream) {
     // write the file here
     fclose(OutStream);
     }

我的 Android 設備是 Android 10。任何想法為什么會發生這種情況以及如何解決它?

將 requestLegacyExternalStorage="true" 添加到清單文件中的應用程序標記。

暫無
暫無

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

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