AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Datenbanken unter Android mit verschiedenen Apps
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbanken unter Android mit verschiedenen Apps

Ein Thema von skoschke · begonnen am 29. Aug 2022 · letzter Beitrag vom 1. Sep 2022
Antwort Antwort
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#1

Datenbanken unter Android mit verschiedenen Apps

  Alt 29. Aug 2022, 08:54
Hallo,

nach etlichen Android-Updates habe ich plötzlich ein Problem:

Es gibt 2 Apps auf dem Handy, die jeweils eine Datenbank besitzen.
Diese Datenbanken liegen im internen Speicher, unter öffentliche Dokumente/App_A/Database und öffentliche Dokumente/App_B/Database.

App_A konnte bisher problemlos auf die Datenbank von App_B zugreifen, das führt aber aktuell zu Laufzeitfehlern "unable to open database file"

Ich habe keine Ahnung wie ich das beheben könnte, Betriebssystem ist Android 12

Danke für Tipps

Ciao
Stefan

Nachtrag:
Nach Deinstallation und Neuinstallation von App_A kann diese auch nicht mehr auf ihre eigene Datenbank zugreifen!
Verdammter Mist, wer kann helfen?

Geändert von skoschke (29. Aug 2022 um 09:27 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.093 Beiträge
 
Delphi 12 Athens
 
#2

AW: Datenbanken unter Android mit verschiedenen Apps

  Alt 29. Aug 2022, 20:43
Die Files (auch von DBs wiw Sqlite) sollten eigentlich in einer Sandbox bei der eigenen App liegen.
Einfach von "draußen" drauf zugreifen ist schwierig, inkompatibel und wird wohl immer weiter zurückgeschraubt als jetzt schon.
Das in "common folder" zu legen von wo aus mehrere drauf zugreifen können ist fast nicht mehr möglich.

Ich denke mal es wäre der richtige Weg dafür wenn man sowas wie seinen eigenen "DB-Server" als Service verpackt,
welchen dann verschiedene Apps parallel nutzen könnten.
Soweit ich weiss kann ein Service mit mehreren Apps verbunden werden, aber 100% sicher ob und wie das sauber ohne Probleme läuft bin ich auch nicht.

Ansonsten ist es wohl am einfachsten und saubersten einen externen REST-Server als DB zu nutzen, das sollte eigentlich immer gehen.
Für den rein lokalen Zugriff könnte das eine lokale Sqlite DB sein, die mit dme rEST-Server synchronisiert wird.
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Datenbanken unter Android mit verschiedenen Apps

  Alt 31. Aug 2022, 09:07
Danke erst mal für die Antwort...

Die App wird bei Handwerksbetrieben eingesetzt, da kann ein APK installiert werden, mehr kann und möchte ich daher den Anwendern an Installation nicht zumuten...

Eine andere Idee hätte ich da aber noch:
Kann man von App_A einen Intent an App_B senden, welcher diese App öffnet?
Dort könnte der Anwender dann z.B. eine Adresse auswählen, welche dann als Intent wieder an App_A zurückgesendet wird?

Oder wie meinst Du die Lösung mit einem Service?

Ciao
Stefan
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.093 Beiträge
 
Delphi 12 Athens
 
#4

AW: Datenbanken unter Android mit verschiedenen Apps

  Alt 31. Aug 2022, 19:54
Oder wie meinst Du die Lösung mit einem Service?
Ich meine einen Android-Service, der könnte womöglich mehrere Apps bedienen.

Die APK sieplt eigentlich keine Rolle, ob über PlayStore oder anderswo her, aber der Zugriff auf Speicher der nicht zu deiner App gehört wird immer mehr eingeschränkt.
Deshalb der Ausweg über einen externen REST-Server, dann liegen die Daten eben nicht mehr lokal wo Android Dich ständig bevormundet
und Du hast den vollen Zugriff darauf.
Braucht aber halt einen Server.

Gerade bei professioneller Software macht das Auslagern auf Server doch sehr viel Sinn.
Z.B. App ist kostenlos, der Kunde muss sich aber auf deinem Server registrieren mit einer Subscription.
Nur so als Gedanke.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Datenbanken unter Android mit verschiedenen Apps

  Alt 31. Aug 2022, 21:07
Ein Service unter Android kann ohne Gui laufen, vergleichbar mit Windows. Der Service würde die DB Anfragen bedienen, ggF. auch für mehrere Apps.
Ein externer Server wäre naheliegend, Ausschlussgründe wären nur erhöhter Aufwand eben für den Serverbetrieb und Monitoring und Absicherung. Außerdem benötigt der natürlich eine Internetverbindung (WLAN oder SIM), das ist vielleicht gerade in Handwerkssituationen nicht immer gegeben, Funkloch oder Heizungskeller halt. Ein gut betriebener externer Server würde dann dem Nutzer den Mehrwert bringen, dass er auch Handy /Datenverlust abfängt, das schnelle Teilen von Daten erlaubt usw.

Außerdem muss der Service natürlich extra installiert werden, das kann aber denke ich im Rahmen der Installation der eigentlichen App erfolgen.

P.S.: Vielleicht hilft auch ein ContentProvider
https://developer.android.com/guide/...tent-providers
Gruß, Jo

Geändert von jobo (31. Aug 2022 um 21:19 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.093 Beiträge
 
Delphi 12 Athens
 
#6

AW: Datenbanken unter Android mit verschiedenen Apps

  Alt 1. Sep 2022, 07:15
@Jobo: Genau so.

Außerdem benötigt der natürlich eine Internetverbindung (WLAN oder SIM), das ist vielleicht gerade in Handwerkssituationen nicht immer gegeben
Das ist auch kein Problem, denn jede App kann ja ihren eigenen lokalen DB-Server haben.
Es gibt da auch irgendwo in den D11 Demos ein komplettes Demo zu LocalSQL, ich finde es nur gerade nicht.
https://docwiki.embarcadero.com/RADS..._SQL_(FireDAC)
https://www.youtube.com/watch?v=QA-xhfYoEq4

Allerdings muss man sich dann um die Replikation lokal und remote DB kümmern, aber das ist machbar.
Es gibt natürlich auch "fertige" Lösungen wie TMS Aurelius für Server und Client, dann muss man sich aber damit an TMS binden.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#7

AW: Datenbanken unter Android mit verschiedenen Apps

  Alt 1. Sep 2022, 22:48
Man kann auch Intents Programmieren und damit andere Anwendungen aufrufen bzw. in denen was Aufrufen.
Es gab zumindest mal (vermutlich immer noch vorhanden) ein Beispiel zur Nutzung udn Erstellung von Intents.
Schau' mal in den Beispielen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz