Italian [B4A] Dove far scrivere file di log dalla app ?

amorosik

Expert
Licensed User
Leggo che su ultime versioni di Android, mi pare la 10 e 11, sia stata limitata la possibilita' di scrivere file di qua' e di la'
Quindi la domanda e': dov'e' che e' possibile far scrivere files dalla propria app, ad esempio un log sulle posizioni gps lette, senza che Android si incazzi di brutto?
Ovviamente la posizione dei file dovra' essere una roba pubblica, leggibile poi anche via Team Viewer o Anydesk
 
D

Deleted member 103

Guest
Leggo che su ultime versioni di Android, mi pare la 10 e 11, sia stata limitata la possibilita' di scrivere file di qua' e di la'
Quindi la domanda e': dov'e' che e' possibile far scrivere files dalla propria app, ad esempio un log sulle posizioni gps lette, senza che Android si incazzi di brutto?
Ovviamente la posizione dei file dovra' essere una roba pubblica, leggibile poi anche via Team Viewer o Anydesk
e se usi questa classe, puoi scrivere i file della tua App dove vuoi tu.

e se aggiungi alla classe "Externalstorage" queste piccole procedure, puoi fare uno di tutto.
B4X:
#Region "CustomSubs"
Public Sub IsStorageFolderSelected As Boolean
    Return File.Exists(File.DirInternal, PreviousUriFileName)
End Sub

Public Sub ReadList(exfile As ExternalFile) As List
    Dim in As InputStream = OpenInputStream(exfile)
    Dim out As OutputStream = File.OpenOutput(File.DirInternal, "tmp", False)
    File.Copy2(in, out)
    out.Close
    
    Return File.ReadList(File.DirInternal, "tmp")
End Sub

Public Sub WriteList(FileName As String, lst As List)
    'Alle Laps als CSV-File speichern
    File.WriteList(File.DirInternalCache, FileName, lst)

    'Neue Leere Datei in der Ablageordner erstellen
    Dim ef As ExternalFile = CreateNewFile(Root, FileName)

    Dim in As InputStream = File.OpenInput(File.DirInternalCache, FileName)
    Dim out As OutputStream = OpenOutputStream(ef)
    File.Copy2(in, out)
    out.Close
End Sub

Public Sub CopyFileToDirInternal(exfile As ExternalFile)
    Dim in As InputStream = OpenInputStream(exfile)
    Dim out As OutputStream = File.OpenOutput(File.DirInternal, exfile.Name, False)
    File.Copy2(in, out)
    out.Close
End Sub

Public Sub CopyFileToExternalStorage(Dir As String, Filename As String, exfolder As ExternalFile)
    'Neue Leere Datei in der Ablageordner erstellen
    Dim ef As ExternalFile = CreateNewFile(exfolder, Filename)

    Dim in As InputStream = File.OpenInput(Dir, Filename)
    Dim out As OutputStream = OpenOutputStream(ef)
    File.Copy2(in, out)
    out.Close
End Sub

Public Sub FileExist(dir As ExternalFile, sFile As String) As Boolean
    'Erstellt ein Liste für die Prüfung ob das neue File schon vorhanden ist
    Dim lst As List = ListFiles(dir)
    For Each ex As ExternalFile In lst
        If ex.Name.ToLowerCase = sFile.ToLowerCase Then
            Return True
        End If
    Next
    Return False
End Sub

Public Sub FileDelete(dir As ExternalFile, sFile As String) As Boolean   
    Dim lst As List = ListFiles(dir)
    For Each ex As ExternalFile In lst
        If ex.Name.ToLowerCase = sFile.ToLowerCase Then
            Return DeleteFile(ex)
        End If
    Next
    Return False
End Sub
#End Region
;)
 
D

Deleted member 103

Guest
Il "bello" è che QUANDO morirà il mio portatile (12ne, ovvero tra non molto) credo proprio che perderò tutti i "segnalibri" :(:(:(
Allora è ora che fai un backup, però lo salvi fuori dal portabile. ;)
Se usi Firefox, questa è la procedura.
1629202572939.png
 

LucaMs

Expert
Licensed User
Longtime User
1629204219280.png


"exportieren" ci posso pure arrivare (e so pure pronunciarlo, pensa! 😄). "Lesezeichen"... molto meno... google, aiutami tu... bookmark, segnalibro (già, chissà perché 😄).

P.S. "Lesen" mi pare di ricordare (anni '80, 3 misere vacanza in Stuttgart!) che significhi: lèggere.
(vacanze durante le quali imparai molto più parolacce che altro 😄 - in dialetto, probabilmente, e non certo scritte!)
 
Top