[sword-devel] New shared common SWORD path on Android
Troy A. Griffitts
scribe at crosswire.org
Mon Oct 4 07:10:32 EDT 2021
So, I did a bunch of reading when choosing this location and couldn't find anything that specifically listed which folders where standard "top level" folders under /sdcard, only that the changes to the API in newer versions of Android prevented creation of top level folders under /sdcard. This article suggested to use 'Music':
I didn't think Music was appropriate for us, but Iooked on my developer images from Google on the latest version of Android and a few versions back (I only need to go back as far as until Android still lets me store to /sdcard/sword, because I try that next if /sdcard/Documents/sword fails), and on my physical phone, and they all had /sdcard/Documents/ available.
I am open to better suggestions.
Again, to sum up where I understand things now:
Android, pre-10 lets us store to /sdcard/sword
Android 10 was kind of a mess and wanted everyone to use the new storage api instead of file paths but still allowed /sdcard/sword
Android 11 and later, Google recanted because of pressure from the community and settled on: file path are officially blessed again, but no top level folders created by apps under /sdcard, so we need to choose a folder.
/sdcard/Documents/sword seemed to exist on all versions of Android I checked, later than the versions which still supported /SD card/sword, so I settled with the logic:
Try in this order to test write access to:
[private unshared app storage]/sword
That's my best attempt. If you have a better suggestion, I am all ears.
On October 3, 2021 10:56:34 AM MST, Tobias Klein <contact at tklein.info> wrote:
>I can certainly consider /sdcard/Documents as a new base also for Ezra
>(haven't tried it yet).
>I just did a quick search and I didn't find any official Android
>documentation on that particular filesystem path. Is there something you
>can point me to?
>On 9/13/21 12:38 PM, Troy A. Griffitts wrote:
>> Thanks Michael, yes, I also feel we need to not swim against the
>> Google flow. The problem is that the Google flow seems to turn at
>> each new release of Android. Be assured, my goal is to find a common
>> means for us to share a single install of SWORD modules and to do it
>> the way Google wants and for as many versions of Android as practical.
>> I've had no trouble writing to /sdcard/... from our C++ code, as long
>> as I don't write to the root of /sdcard/. My change from
>> /sdcard/sword to /sdcard/Documents/sword/ works fine on Android 11.
>> Can you give /sdcard/Documents/sword/ a try? You can grab my exact
>> C++ code from the cordova plugin if you have trouble.
>> static void init(JNIEnv *env);
>> On 9/13/21 10:32 AM, Tobias Klein wrote:
>>> Dear Troy,
>>> We should certainly align on the directories and keep it simple.
>>> However, starting from Android 11 Google makes it really hard for us
>>> due to the "Scoped Storage" concept, see
>>> I couldn't figure out a way to write to /sdcard any more in my C++
>>> context on Android 11.
>>> As a consequence at the moment I am not using /sdcard from Android 11
>>> anymore, but only the private app folder.
>>> For Android < 11 I am using */sdcard/sword*, but for Android >= 11 I
>>> have completely disabled this including the permissions request for
>>> I wonder whether there is still any way to still use /sdcard/* in
>>> Android >= 11 in the C++ context ... I haven't found a solution yet
>>> and it seems rather complicated.
>>> Best regards,
>>> On 9/12/21 3:51 PM, Troy A. Griffitts wrote:
>>>> Dear all,
>>>> I've been updating Bishop to work on newer versions of Android and have
>>>> found that we are running into problems trying to create the
>>>> "Nonstandard top-level folder" 'sword' at the root of the common storage
>>>> Tobias, I know a while back you mentioned that you had to update Ezra
>>>> for Android recently, but it has been a long while since we talked about
>>>> it and I'd like to know if you've had any updated thoughts on what
>>>> you're doing there.
>>>> Any other mobile Android devs have any thoughts.
>>>> For now, I have updated our cordova plugin (and thus Bishop) to check
>>>> and if possible use paths in this preferred order:
>>>> And we are augmenting modules from AndBible:
>>>> ... but I'd prefer not to do this any longer, once we all agree and
>>>> implement storing files in a common location.
>>>> Any thoughts?
>>>> sword-devel mailing list:sword-devel at crosswire.org
>>>> Instructions to unsubscribe/change your settings at above page
>>> sword-devel mailing list:sword-devel at crosswire.org
>>> Instructions to unsubscribe/change your settings at above page
>> sword-devel mailing list: sword-devel at crosswire.org
>> Instructions to unsubscribe/change your settings at above page
Sent from my Android device with K-9 Mail. Please excuse my brevity.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the sword-devel