[英]C++ Builder 11.1 Android can't write a file to the Shared Documents folder
I am having difficulty with C++ Builder 11.1 Android trying to write a file to the Shared Documents folder.我在使用 C++ Builder 11.1 Android 尝试将文件写入共享文档文件夹时遇到困难。 It worked with C++ Builder 10.3.1 but it doesn't work in 11.1
它适用于 C++ Builder 10.3.1,但不适用于 11.1
I have the permissions set properly in the Project Options Dialog box: Dangerous - Read External Storage = true Dangerous - Write External Storage = true我在项目选项对话框中正确设置了权限:危险 - 读取外部存储 = true 危险 - 写入外部存储 = true
In the OnFormCreate method, I put in the necessary run time permissions as follows:在 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);
In the routine to write the file...在写入文件的例程中...
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);
}
My Android device is Android 10. Any ideas why this is happening and how to fix it?我的 Android 设备是 Android 10。任何想法为什么会发生这种情况以及如何解决它?
将 requestLegacyExternalStorage="true" 添加到清单文件中的应用程序标记。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.