Frage an die Linuxspezialisten

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Antworten
ErnstVolker
Beiträge: 327
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Frage an die Linuxspezialisten

Beitrag von ErnstVolker »

Hallo,

ich habe mal eine Frage zu Linux bzw. Android (basiert wohl auf Linux).

Ich bin an einer App, die kopiert eine SQlite-Datenbank aus dem databases-Ordner der App in einen Ordner "Transport". Das funktioniert auch tadellos.

Mit dem ES File Explorer wird die Datenbank nach dem Kopieren in "Transport" auch angezeigt. Stöpsel ich das Tablet aber per USB an einen Rechner (egal ob Win10, OpenSuse13.2 oder El Capitan) ist die Datei im Ordner "Transport" nicht vorhanden. Erst nach Neustart des Tablets taucht sie dort auf.

Ich habe aber keine Lust immer erst das Tablet neu zu starten, nur damit die DB sichtbar wird. Gibt es da Abhilfe?

Vielen Dank und viele Grüße

Volker

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Frage an die Linuxspezialisten

Beitrag von Christian »

Versetz sich bei Fragestellungen bitte immer in die Lage der Personen die antworten sollen.

Ich bin an einer App

Du sitzt vor einer App ?
Du hast eine App geschrieben die das tut ?
Du benutzt eine bestimmte App um das zu tun ?

Ich gehe von 2. aus. Daraus ergibt sich die Frage wie du die DB kopierst.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

ErnstVolker
Beiträge: 327
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Frage an die Linuxspezialisten

Beitrag von ErnstVolker »

Hallo Christian,

bitte entschuldigt, dass ich in der Formulierung zu salopp war. Ich bin gedanklich von einem "Linux-Problem" ausgegangen, nicht davon, dass es am Kopiervorgang liegen könnte.
Deshalb wollte ich mich kurz fassen.

Ich programmiere eine App, die bei Verwendung besagten Kopiervorgang ausführt. Den Code für das Kopieren habe ich im Netz gefunden. Er folgt hier:

Code: Alles auswählen

    protected void copy(String from, String to)throws Exception{
        FileChannel in = new FileInputStream(from).getChannel();
        FileChannel out = new FileOutputStream(to).getChannel();
        in.transferTo(0, in.size(), out);
        in.close();
        out.close();
    }


"from" gibt den Pfad an wo die DB liegt (data/data/packagename/databases/) und "to" ist das Ziel: "//storage/sdcard0/Transport/MyDB_Tausch.db"

Das Kopieren funzt, nur am PC wird die DB erst nach Neustart des Tablet sichtbar. Ich dachte es gäbe unter Linux so etwas wie Dateisystem Aktualisieren oder so.
Man schreibt sich ein bash-Skript, legt es in den Ordner "Transport" und führt es durch anklicken aus und die frisch kopierte Datei erscheint im Konqueror. So war mein Gedankengang. Ich habe versucht mit "mount" etwas zu erreichen, ist mir aber nicht gelungen.

Vielen Dank für Eure Hilfe

Volker

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Frage an die Linuxspezialisten

Beitrag von Christian »

Du verwirrst mich weiter.

Wo läuft deine App nun auf Android oder auf Linux ?
Android nutzt den Linux Kernel das wars dann aber auch schon mit den Gemeinsamkeiten.

Und dann scheinst du die App in java zu schreiben und nicht Freepascal ?!

Evntl wärs besser du wendest dich an ein Android Entwickungsforum ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Frage an die Linuxspezialisten

Beitrag von Soner »

Wenn der Ordner "Transport" auf der SD-Karte liegt wird kann es sein dass der Ordner am PC automatische eingebunden wird (mounted), dann ist dieser Ordner für Android unsichtbar. Auch wenn man keine Sd-Karte eingesteckt hat verhält sich interne Android Speicher wie SD-Karte.
Bevor du das Tablett vom Computer trennt musst man sowohl am PC als auch am Android-Gerät USB-Anschluß "sicher trennen".

ErnstVolker
Beiträge: 327
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Frage an die Linuxspezialisten

Beitrag von ErnstVolker »

Hallo zusammen,

soweit mir bekannt, baut das Android Betriebssystem auf einem Linux Kernel auf. Meine App läuft auf Android und die Kopierfunktion wird unter Android ausgeführt. Deshalb progge ich mit Android-Studio und in Java. Ich will auch gar nicht nach Java in einem Pascal-Forum fragen. Ich hatte den Quelltext nur eingefügt, weil die Frage aufkam wie ich kopieren würde. Ich dachte dieses "FileInputStream" etc. hätte Auswirkung auf das "seltsame" Verhalten. Es geht mir nicht um Java sondern um das "sonderbare Verhalten" des Tablets.

"Kurzfassung:"
Ich kopiere auf einem Tablet eine Datenbank von "A" nach "B". Mit dem "ES File Explorer" wird die DB auch auf dem Tablet bei "B" angezeigt. Kopieren hat also funktioniert. Jetzt schließe ich das Tablet via USB-Kabel an den PC an und stelle fest, dass sich auf dem Tablet im Ordner bei "B" keine DB befindet. Also entferne ich das Tablet vorschriftsmäßig vom PC. Dann schalte ich das Tablet aus und anschließend wieder ein. Dann schließe ich das Tablet wieder per Kabel an den PC an und OH WUNDER, wenn ich in den Ordner "B" navigiere, dann ist die Datenbank da und ich kann sie per Drag and Drop auf den PC verschieben.

Wenn ich AirDroid verwende, dann kann ich die DB auch ohne Neustart des Tablets auf den PC verschieben. Nur muß man sich bei AirDroid anmelden. Ich will das über Socket per WLAN lösen, aber zuvor hätte ich mit der USB-Kabel-Variante Vorlieb genommen.

Der Ordner ist nicht das Problem. Der ist am PC vorhanden. Der Inhalt des Ordners erscheint nicht bzw. erst nach einem Neustart des Tablets. Ich dachte das sei ein Linux-Problem.

Sofern das ein Android Problem ist, dann nix für ungut. Dann bitte ich den Administrator dieses Forums, den Beitrag einfach nur rauszunehmen. Ich will in einem Pascal-Forum nix nach Android oder Linux fragen.

Obwohl das Forum hier das Beste ist was ich bisher kenne. Hier gibt es wenigstens Antworten. Bei den Android Entwicklern bekommt man hierzu gar keine Antwort. Deshalb dachte ich fragst mal hier. Die Leute kennen sich mit Linux aus.

Gedankengang: Android-->Linux-Kernel-->Dateiverwaltung evtl. linuxartig-->seltsames Verhalten-->Linux-Problem-->Linuxspezialisten fragen-->die gibt's im Lazarusforum.

Viele Grüße

Volker

Antworten