[sword-devel] New shared common SWORD path on Android
Tobias Klein
contact at tklein.info
Sat Oct 28 14:50:59 EDT 2023
Hi Troy,
I did not re-attempt to fix the shared data path idea for Android >= 11.
Since Google introduced their scoped storage model ... I gave up on it.
On Android versions <= 10, I use the SWORD path /sdcard/Documents/sword.
On versions >= 11, I store everything in the internal app directory, and
therefore there is no shared data path anymore.
If you happen to figure out a reliable solution for >= 11 and the new
Scoped Storage model, I'd be happy to learn.
For >= 11 I am thinking about introducing a Cloud sync feature for the
sword directory. This could then work with Dropbox and maybe also OneDrive.
Best regards,
Tobias
PS: I had a long summer break this year and was not very active on this
mailing list. Hopefully my participation will increase again now.
On 10/22/23 11:51 AM, Troy A. Griffitts wrote:
>
> Hi Tobias and others with Android SWORD apps.
>
> I am trying to bundle up a new version of Bishop for Android with the
> some exciting improvements in the libsword (I'll post another email
> about those, Lord willing, soon), and I would like to check on the
> latest status for a shared sword path for us.
>
> I have tried again to read about the current ways for apps to share
> data and am still unclear what is allowed, without performing experiments.
>
> Tobias, where did you end up with your data path? I'll do some
> investigations with the latest versions of Android images available
> from Google and see where the current logic in Bishop creates data
> files and report back.
>
> Hope you are all having a wonderful weekend!
>
> Glory to God for salvation in Jesus! And thanks to Him for life and a
> warm bed and a roof over our heads and relative peace. Many don't
> have those things.
>
> Troy
>
>
> On 10/4/21 13:10, Troy A. Griffitts wrote:
>> Hi Tobias,
>> 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':
>>
>> https://www.reddit.com/r/androiddev/comments/jn5azi/android_11_dodges_a_bullet_apps_creating_a_folder/?utm_source=amp&utm_medium=&utm_content=post_body
>> <https://www.reddit.com/r/androiddev/comments/jn5azi/android_11_dodges_a_bullet_apps_creating_a_folder/?utm_source=amp&utm_medium=&utm_content=post_body>
>>
>> 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:
>>
>> /sdcard/Documents/sword
>> /sdcard/sword
>> [private unshared app storage]/sword
>>
>> That's my best attempt. If you have a better suggestion, I am all ears.
>>
>> Troy
>>
>>
>> On October 3, 2021 10:56:34 AM MST, Tobias Klein
>> <contact at tklein.info> wrote:
>>
>> Hi Troy,
>>
>> 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?
>>
>> Best regards,
>> Tobias
>>
>> 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.
>>>
>>> Tobias,
>>>
>>> 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.
>>>
>>> https://crosswire.org/svn/sword/trunk/bindings/java-jni/jni/swordstub.cpp
>>>
>>> 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
>>>> https://developer.android.com/about/versions/11/privacy/storage
>>>>
>>>> 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 WRITE_EXTERNAL_STORAGE.
>>>>
>>>> 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,
>>>> Tobias
>>>>
>>>> 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
>>>>> folder.
>>>>>
>>>>> 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:
>>>>>
>>>>> "/sdcard/Documents/sword"
>>>>>
>>>>> "/sdcard/sword"
>>>>>
>>>>> ((android.app.Application)
>>>>> app).getApplicationContext().getFilesDir().getAbsolutePath();
>>>>>
>>>>> And we are augmenting modules from AndBible:
>>>>>
>>>>> "/sdcard/Android/data/net.bible.android.activity/files"
>>>>>
>>>>> ... but I'd prefer not to do this any longer, once we all agree and
>>>>> implement storing files in a common location.
>>>>>
>>>>> Any thoughts?
>>>>>
>>>>> Troy
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> sword-devel mailing list:sword-devel at crosswire.org
>>>>> http://crosswire.org/mailman/listinfo/sword-devel
>>>>> Instructions to unsubscribe/change your settings at above page
>>>>
>>>> _______________________________________________
>>>> sword-devel mailing list:sword-devel at crosswire.org
>>>> http://crosswire.org/mailman/listinfo/sword-devel
>>>> Instructions to unsubscribe/change your settings at above page
>>>
>>> _______________________________________________
>>> sword-devel mailing list:sword-devel at crosswire.org
>>> http://crosswire.org/mailman/listinfo/sword-devel
>>> Instructions to unsubscribe/change your settings at above page
>>
>> -- Sent from my Android device with K-9 Mail. Please excuse my brevity.
>>
>> _______________________________________________
>> sword-devel mailing list:sword-devel at crosswire.org
>> http://crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
>
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://crosswire.org/pipermail/sword-devel/attachments/20231028/021dead8/attachment.htm>
More information about the sword-devel
mailing list