[Interest] Problems writing files to Android file system on some newer devices using QStandardPaths
Nuno Santos
nuno.santos at imaginando.pt
Tue May 25 18:02:43 CEST 2021
Jerome,
Thank you very much for your reply and for the link.
DocumentsLocation is point to /storage/emulated/…
But I’ve been trying with other QStandardPath such as ConfigLocation and DataLocation. Those were point to something like /user/app_identififier_/files/, can’t remember exactly now. But when trying to write to those locations, it would always fail.
Are QStandardPath Android locations compatible with Scoped Storage? Would I need to refactor my Qt code or this is just a thing we need to enable in the app manifest?
Thank you!
Best regards,
Nuno
> On 25 May 2021, at 14:22, Jérôme Godbout <godboutj at amotus.ca> wrote:
>
> Where the standard path resolve on the device?
>
> On Android 10, they changed the way we can access the file system, you can opt out with android:requestLegacyExternalStorage=“true” but this flag doesn’t work for Android 11+. If removing this flag break your applications, it means your application won’t work on any Android 11 devices.
>
> The application are now sandboxed, Android 10 make it optional, Android 11 enforce it. You need to move to scoped storage.
> https://developer.android.com/about/versions/11/privacy/storage <https://developer.android.com/about/versions/11/privacy/storage>
>
>
> Jérôme Godbout, B. Ing.
>
> Software / Firmware Team Lead
> O: (418) 682-3636 ext.: 114
> C: (581) 777-0050
> godboutj at dimonoff.com <mailto:godboutj at dimonoff.com>
> <image001.png> <https://www.dimonoff.com/>
> dimonoff.com <https://www.dimonoff.com/>
> 1015 Avenue Wilfrid-Pelletier,
> Québec, QC G1W 0C4, 4e étage
>
>
> From: Interest <interest-bounces at qt-project.org> on behalf of Nuno Santos <nuno.santos at imaginando.pt>
> Date: Monday, May 24, 2021 at 8:17 AM
> To: Qt Interest <interest at qt-project.org>
> Subject: [Interest] Problems writing files to Android file system on some newer devices using QStandardPaths
>
> Hi,
>
> Is anyone aware of changes to the way that Android filesystem works and how Qt interacts with it?
>
> I’ve been writing to QStandardPaths::DocumentLocations without any issues until. However, on some newer devices, it fails to open files for writing. One example is Samsung Tab A (SM-T500)
>
> It seems though that using android:requestLegacyExternalStorage=“true” seems to fix the problem but this solution will not last long because it seems it will be ignored when the app targets API 30 (Android 11):
>
> https://developer.android.com/training/data-storage/use-cases <https://developer.android.com/training/data-storage/use-cases>
>
> Caution: After you update your app to target Android 11 (API level 30), the system ignores the requestLegacyExternalStorage attribute <https://developer.android.com/about/versions/11/privacy/storage#scoped-storage> when your app is running on Android 11 devices, so your app must be ready to support scoped storage and to migrate app data <https://developer.android.com/training/data-storage/use-cases#migrate-legacy-storage> for users on those devices.
>
> Is there any common knowledge about this?
>
> Thanks!
>
> Regards,
>
> Nuno
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20210525/f96b92c2/attachment.html>
More information about the Interest
mailing list