Storage Location cannot be selected in Graphene OS

App version: 2.2.1F-Droid
Android version: 11.x (Graphene OS)
Device model:
Google Pixel 4a

Hello,
I am trying out Antennapod.
I would like to change the storage location to the standard podcast folder the OS has created.
But the option to choose a storage location for downloaded podcasts is unresponsive (as in Settings → Storage-> Choose Data folder).
What am I doing wrong?
Help would be appreciated!

Same thing here!
It would be nice to have a solution, because the automatic download is then impossible.
Access to Data folder is forbiden, probably by GrapheneOS.

I’m not a developer, but I’m just thinking: this may be a permission issue in Android 11 - which is much more strict when it comes to access by apps to the file system. In Organic Maps (open source navigation app) the developer gave some explanation about the limited options they had (for the sharing of pins/bookmarks).

Google is forcing all developers to move to so called “scoped storage”.

They mentioned the following solutions they had tried:

  1. Old WRITE_EXTERNAL_STORAGE permission to write /sdcard - ignored completely, access denied.
  2. getExternalFilesDir() - returns /sdcard/Android/data/app.organicmaps (sdcard), it works, but this directory is inaccessible from other apps including file managers.
  3. getFilesDir() - returns /data/user/0/app.organicmaps/ (internal storage) - current.
  4. StorageAccessFramework to write /sdcard/Documents/OrganicMaps - this is a compeletely weird. You can write to a folder, but the application can read only its files. In other words, if you copy a bookmark file by using a file manager, it will exist in the folder, but the app will not see it.
  5. New MANAGE_EXTERNAL_STORAGE to write to arbitrary directory - requires a special approval from Google, designed for filemanagers. I’m not sure that privacy-focused map actually needs permission to read all files.

Option 2 could work maybe for AntennaPod (but again, I’m not a developer so what I’m writing here might make no sense at all).
I’m wondering how AntennaPod is coping with the ‘local folder feeds’ in the more restrictive environment that is Android 11. @ByteHamster any thoughts on this?

The storage folder setting can switch between options 2 and 3 (if they exist). Local feeds are based on option 4.

1 Like

So everything should (theoretically) work in Android 11, then?

I have an option to select the data folder but on ticking it only one option for selection appears. So there is nothing to select.

Just the same issue with Android 9 - no possibility to change /storage/emulated/0/Android/data/de.danoeh.antennapod/files to /storage/emulated/0/Podcasts.
App version: 2.3.0 (e83f746b3)
Android version: 9
Device model: Unihertz Atom

So there is no option. A pity - this way you cannot have podcasts automatically detected by apps like poweramp etc

Currently on Android 11, AntennaPod lets you make a binary choice between local storage or the SD card, but whichever one you choose, the files go into an app-specific subdirectory, /Android/data/de.danoeh.antennapod, which isn’t accessible outside AntennaPod. It’s a bit of a shame because you can’t, for example, use Syncthing to mirror your downloaded podcasts across to your laptop.

I’m not an Android developer either, but the impression I get from a quick scan of the docs is that there’s a “shared storage” API (Overview of shared storage  |  Android Developers) which allows apps to store media files in a way that’s accessible to other apps on the device.

Maybe it could be accessible if it was in Android\Media ?
It’s where for instance Whatsapp store pictures shared in conversations. So I guess there is some kind of directory accessible for apps to store files that other apps can use. (I checked and I am able to access it with syncthing)

That would work (and in fact, I do use Syncthing to sync WhatsApp media between devices - it works fine).

It looks like any app with the MANAGE_EXTERNAL_STORAGE permission can read from /Android/Media, but not from /Android/Data (apart from its own subdir of course): Manage all files on a storage device  |  Android Developers

Yeah, but using that API is completely different to normal files and would require a full rewrite of all file handling in AntennaPod.

Why don’t you just sync with the gpodder desktop application?

1 Like

Its not a question of sync but to reduce backup capacity