Errore con il componente file

Salve a tutti,
non riesco a capire il motivo di questo errore. In pratica ogni volta che aggiungo una voce nel file "Oggetti"; il salvataggio viene effettuato sia in un TinyDB e sia in un componente File. Ma la cosa strana è che ogni tanto, mi capita che:

Oggetto1 salved correctly
Oggetto2 salved correctly
Oggetto3..error

The path starts with file /. Replace that with file:///.

Ho seguito il tuo consiglio; ma provando già con il companion, ricevo altri 2 errori:


Try:

file:///storage/emulated/0/Download/Oggetti.txt

but makes sure you have the correct write permissions for that file, and path, and the correct filescope , and did you create the file with your app?

Tim ti allego i miei blocchi:

Why save to file, you already save to tinydb ?

Per poter aver anche una copia sulla memoria interna, nel caso in cui dovessi cambiare lo smartphone e poter far così un rapido backup.

Salvare in due modi non ha senso, se vuoi salvare su file non utilizzare il db.
Ti avevo già detto che appendere i dati con un ciclo era una cosa da evitare.

I would usually advise to save a file to the ASD, and to then handle it from there....

What could he do in case of phone change ?

I use the Explorer app to access files in other apps ASDs.

Alternatively I would simply upload the file to google drive or my own server direct from within the app from the ASD.

You can use google apps script to work with text and csv files directly from google drive:

Working with Text and CSV Files on Google Drive

@patello hai ragione sul fatto che salvare in due modi non ha senso; quindi mi dedicherò a salvare direttamente su file.

@TIMAI2 hai ragione, difatti salvare direttamente su Google Drive è una delle soluzioni più ottimali; ma per me risulta una procedura un pò complicata; quindi d'ora in poi, effettuerò il salvataggio direttamente su file.

Ok, with explorer I can copy the text file on the new phone, but the same app (installed on the new phone) could read the file ?

No it can't.
At least not on Android 11+ (without MANAGE_EXTERNAL_STORAGE permission or without using the Storage Access Framework).

Tim mi capita una cosa pazzesca; la mia app con il companion funziona perfettamente, mentre dopo aver creato l'APK, il componente file non funziona.

Read post #3 (again).

Ho concesso tutti i permessi sia di lettura e sia di scrittura!

This demonstrates the fallacies of the file component permissions across scopes and apps, the methods provided so far to access files not in the ASD, and the difficulties google has imposed upon the file system!

I just ran a simple test (tested with compiled apps on Android 12 / API31):

  • I set up two apps: readApp1 and readApp2 which can save a text file to the respective ASD and read a file from the respective ASD. I created and saved a file in each.

  • Using the Explorer app, I copied the file created in readApp1 ASD to readApp2 ASD.

  • I then opened readApp2 and was able to read the copied file. I was also able to edit and overwrite the file copied from readApp1.

  • I was also able to copy, using the Explorer app, a file not created by either app, from the Download folder to the readApp2 ASD, and then open and read the file from readApp2.

Summary, use an all access file manager to copy files between ASDs and other locations in apps (or as previously suggested, just upload the file/data online and call it back when required).

2 Likes