Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Welche Verzeichnisse verfügbar unter Android 12? (https://www.delphipraxis.net/211429-welche-verzeichnisse-verfuegbar-unter-android-12-a.html)

skoschke 15. Sep 2022 09:13

Welche Verzeichnisse verfügbar unter Android 12?
 
Hallo,

ich "spiele" nun seit Tagen und komme nicht weiter:

Meine Android-App hat ihre Datenbank in ihrer Sandbox, soweit so gut.
Es sollen aber weitere Dateien über eine OwnCloud-Verbindung und FolderSync synchronisiert werden.

FolderSync hat keine Möglichkeit auf Dateien in der Sandbox zuzugreifen, also brauche ich ein "frei zugängliches" Verzeichnis, in dem meine App lesen und schreiben kann und auf das FolderSync auch Zugriff haben muss.

Ich habe mit allen möglichen Berechtigungen und Pfaden getestet, entweder kommt fälschlicherweise "File exists" bei Schreibversuchen oder die richtige "Permission denied", aber ein verwendbares Verzeichnis habe ich nicht gefunden, brauche dringend Tipps!

Witzig dabei ist noch, dass ich z.B. unter SharedDocuments oder SharedDownloads Verzeichnisse beliebig anlegen kann, aber keine Dateien dort schreiben kann.

Was ich noch gefunden habe:
Google erlaubt im Playstore keine Dateien mehr mit "Zugriff auf alle Dateien" (MANAGE_EXTERNAL_STORAGE), da ich das APK aber nicht über den Store verteile, würde ich diese Berechtigung gern verwenden, aber wie?

Ciao
Stefan

Rollo62 15. Sep 2022 13:11

AW: Welche Verzeichnisse verfügbar unter Android 12?
 
Ich weiss nicht genau was Du bezweckst und ob OwnCloud lokal oder im Web steht.
Jedenfalls sollte OwnCloud auch einige REST-APIs anbieten, z.B. auch WebDav.
https://doc.owncloud.com/server/next...ual/core/apis/
Vielleicht hilft Dir das weiter ?

himitsu 15. Sep 2022 13:22

AW: Welche Verzeichnisse verfügbar unter Android 12?
 
Klingt so, als wenn er einen ownCloud-Client als App im Android laufen hat.
Also seine Anwendung in einem Verzeichnis scheiben/lesen soll, was über diese andere App synchronisiert wird.

Aber ja, natürlich könnte er auch stattdessen selber aus seiner App heraus via API mit der ownCloud/Server reden.

skoschke 15. Sep 2022 14:05

AW: Welche Verzeichnisse verfügbar unter Android 12?
 
Nein,

es gibt eine Windows-Anwendung, welche Daten (Bilder etc) mit der Mobilen App synchronisiert, also der Windows PC stellt Dateien für Mobil bereit und umgekehrt.
Die Synchronisation erfolgt vom Windows zu OwnCloud (oder anderem Cloudanbieter) und von da per Foldersync zur App und der gleiche Weg zurück.

Hierfür muss es auf dem mobilen Gerät ein Verzeichnis geben, auf welches die App und Foldersync Zugriff haben.

Dieses Verzeichnis oder die entsprechende Berechtigung für die App z.B. in SharedDocuments zu schreiben, habe ich noch nicht gefunden.

Mit Android 11 war das alles kein Problem, unter Android 12 ist das alles verboten!

Ciao
Stefan

Rollo62 15. Sep 2022 14:12

AW: Welche Verzeichnisse verfügbar unter Android 12?
 
Zitat:

Zitat von skoschke (Beitrag 1511836)
Dieses Verzeichnis oder die entsprechende Berechtigung für die App z.B. in SharedDocuments zu schreiben, habe ich noch nicht gefunden.

Vielleicht ein paar Threads vorher
https://www.delphipraxis.net/211430-...ml#post1511823

und
https://developer.android.com/training/data-storage
https://stackoverflow.com/questions/...00189#57600189
https://en.delphipraxis.net/topic/72...#comment-61715

skoschke 15. Sep 2022 16:02

AW: Welche Verzeichnisse verfügbar unter Android 12?
 
die habe ich bereits alle durch, die sind alle für "uralte Versionen von Android" (vor Android 12) ...

und
schreibt dass so gespeicherte Files für andere Apps nur per FilePicker verfügbar sind.

Ciao
Stefan

Rollo62 15. Sep 2022 16:12

AW: Welche Verzeichnisse verfügbar unter Android 12?
 
Ich meine ein app-specific-folder sollte auf den SharedDocuments noch erlaubt sein.

skoschke 16. Sep 2022 07:49

AW: Welche Verzeichnisse verfügbar unter Android 12?
 
Tut es leider nicht!

Genau da liegt ja das Problem!

Ciao
Stefan

Rollo62 16. Sep 2022 08:03

AW: Welche Verzeichnisse verfügbar unter Android 12?
 
Das hier sollte doch aktuell sein.
https://developer.android.com/traini...e/app-specific
Die Permissions hast Du ja gesetzt, vielleicht fehlt noch Entitlements/Secure file sharing ?

skoschke 16. Sep 2022 08:55

AW: Welche Verzeichnisse verfügbar unter Android 12?
 
Zitat:

vielleicht fehlt noch Entitlements/Secure file sharing
Ist das die "Sichere Dateifreigabe" in der Berechtigungsliste?
Das ist im Projekt auf true gesetzt.

Ciao
Stefan

skoschke 17. Sep 2022 10:08

AW: Welche Verzeichnisse verfügbar unter Android 12?
 
Nach langem Googlen habe ich folgendes gefunden, wie man mit den Platform-Tools die Berechtigung testweise freischalten kann:

C:\tmp\platform-tools>adb shell appops set com.embarcadero.Project2 MANAGE_EXTERNAL_STORAGE allow

Nach Eingabe dieses Kommandos funktioniert das Schreiben in den gewünschten Verzeichnissen!

Nun muss ich das irgendwie ins Projekt bekommen, aber hier weiß ich nun nicht mehr weiter...

Ciao
Stefan

Olli73 17. Sep 2022 11:32

AW: Welche Verzeichnisse verfügbar unter Android 12?
 
Vielleicht hilft dir das hier weiter?

https://developer.android.com/traini...nage-all-files

Zitat:

An app can request All files access from the user by doing the following:

Declare the MANAGE_EXTERNAL_STORAGE permission in the manifest.
Use the ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION intent action to direct users to a system settings page where they can enable the following option for your app: Allow access to manage all files.
To determine whether your app has been granted the MANAGE_EXTERNAL_STORAGE permission, call Environment.isExternalStorageManager().

himitsu 17. Sep 2022 11:44

AW: Welche Verzeichnisse verfügbar unter Android 12?
 
Zitat:

Zitat von skoschke (Beitrag 1511973)
Nach langem Googlen habe ich folgendes gefunden, wie man mit den Platform-Tools die Berechtigung testweise freischalten kann:

Stell es dir so vor, dass DI dort quasi als Admin (mit höheren Rechten) das in der Console machst,
aber deine Anwendung kann es von sich aus nicht machen (mit seinen beschnittenen Rechten).

Du kannst nur versuchen sowas ins "Setup" zu bekommen, wenn Google es dir erlaubt etwas mit dieser Berechtigung hochzuladen.

Der Gefängniswerter kann dir erlauben kurz in den Garten (Speicherplatz) rauszugehn, aber der Gefangene (deine App) sollte sich nicht einfach so selber rauslassen können.


Manchmal ist es auch so, wie mit dem UAC.
Deine App hätte das Recht sich dieses Recht zu holen ... es nur nur erstmal nachfragen, zur Laufzeit (z.B. ExternalStorageManager).

Olli73 17. Sep 2022 11:52

AW: Welche Verzeichnisse verfügbar unter Android 12?
 
Zitat:

Zitat von himitsu (Beitrag 1511978)
Du kannst nur versuchen sowas ins "Setup" zu bekommen, wenn Google es dir erlaubt etwas mit dieser Berechtigung hochzuladen.

Zitat aus dem ersten Post:

Zitat:

Google erlaubt im Playstore keine Dateien mehr mit "Zugriff auf alle Dateien" (MANAGE_EXTERNAL_STORAGE), da ich das APK aber nicht über den Store verteile, würde ich diese Berechtigung gern verwenden, aber wie?

himitsu 17. Sep 2022 12:06

AW: Welche Verzeichnisse verfügbar unter Android 12?
 
OK, aber dennoch kann er ja immernoch Download und "instalieren von extern erlaubt".
Aber gut, wenn sowieso via ADB installiert, dann wäre es kein Problem das dort auch mit einzustellen. (so lange Google es dort nicht auch verbietet :stupid:)

Olli73 17. Sep 2022 12:11

AW: Welche Verzeichnisse verfügbar unter Android 12?
 
So wie ich das sehe, braucht er nur das MANAGE_EXTERNAL_STORAGE Recht ins Manifest aufzunehmen und zur Laufzeit die Berechtigung anzufordern (User muss dann die Berechtigung setzen). Dann kann er ganz "normal" die APK (von extern - muss erlaubt sein -) installieren.

Nur in den Store kommt er damit nicht so einfach.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:29 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