Dateizugriff externalStorage auf third Party App mit API30

  • 5 Antworten
  • Neuester Beitrag
Diskutiere Dateizugriff externalStorage auf third Party App mit API30 im Android App Entwicklung im Bereich Betriebssysteme & Apps.
swa00

swa00

Moderator
Teammitglied
Moin Zusammen,

ich schreibe derzeit ein bestehendes Package um , welches aus dem dataPath einer thirdParty-App Dateien ausliest.
Unter API 30 habe ich keine Zugriffe mehr.
(Auch der hausinterne Dateimanager kommt nur noch bis /android/data (darin alles leer)

Mit einer USB Verbindung (PC) oder DeviceExplorer in AS habe ich Zugriff

Wenn ich das richtig verstanden haben gibt die Permission MANAGE_EXTERNAL_STORAGE den eigenen Speicher des
eigenen Pakets frei - richtig ?
Die Third Party APp hat dieses Flag nicht.

Code:
   File file = new File(.... bla bla /android/data/THIRDPARTY_APP/files/"");
   File[] files = file.listFiles(); < Liefert  null zurück -  nicht einmal ein Exception
Code:
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
        android:maxSdkVersion="28" />

    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
        tools:ignore="ScopedStorage" />
Code:
<application
        android:requestLegacyExternalStorage="true"
Wo bin ich zu Blöde ?

Danke
 
Zuletzt bearbeitet:
J

jogimuc

Stammgast
Hallo
ich würde sagen das dir
<application android:requestLegacyExternalStorage="true"
unter API 30 nichts bringt.

Android storage use cases and best practices | Android Developers
Caution: After you update your app to target Android 11 (API level 30), the system ignores the requestLegacyExternalStorage attribute when your app is running on Android 11 devices, so your app must be ready to support scoped storage and to migrate app data for users on those devices.
Beitrag automatisch zusammengefügt:

Wenn ich das richtig verstanden haben gibt die Permission MANAGE_EXTERNAL_STORAGE den eigenen Speicher des
eigenen Pakets frei - richtig ?
dem Stimme ich so nicht ganz zu was meist du mit Freigeben? Welchen Speicherbereich meinst du genau?
 
Zuletzt bearbeitet:
swa00

swa00

Moderator
Teammitglied
Moin Jörg,

den Nebensatz kann man erst mal getrost beiseite legen. Ich meinte damit , dass das eigene Paket seine
/files dem Storagemanager damit zur Verfügung stellt.
(Aber der ist erst einmal unrelevant)

Vielmehr geht es mir darum zu verstehen , warum eine PC Verbindung oder der Device-Explorer im AS die ThirdParty Apps
Dateien auflistet, aber ich es nicht hinbekomme, dies in einer App zur realisieren und auf diese Files zugreifen kann.

Und wie oben erwähnt , schafft das auch der "hausinterne" mitgelieferte Dateimanager nicht .
 
J

jogimuc

Stammgast
Hallo ich habe ein einfaches altes Beispiel mit dem ich immer auf die komplette sd Karte interne oder echte Karte mir der Freigabe des users gekommen bin.
Unter API 30 geht nur noch ein Ordner plus unter Ordner auf der Karte nicht die ganze.

Habe das leider im falschen forum gepostet schau doch dort mal nach.
Vileicht hilft es etwas.

Dateizugriff externalStorage auf third Party App mit API30 | NextPit Forum
 
Zuletzt bearbeitet:
BOotnoOB

BOotnoOB

Guru
swa00 schrieb:
Vielmehr geht es mir darum zu verstehen , warum eine PC Verbindung oder der Device-Explorer im AS die ThirdParty Apps
Dateien auflistet,
Morgen,
weil der Zugriff über MTP erfolgt und dieser nicht den Einschränkungen von Scoped Storage unterliegt. MTP stellt die Dateien ja nur zur Verfügung, während innerhalb des Systems die Zugriffsrechte vorhanden sein müssen (Sandbox-System).
Beitrag automatisch zusammengefügt:

In AS könnte es auch ADB anstatt MTP sein, weiß ich jetzt nicht genau.
 
Zuletzt bearbeitet:
J

jogimuc

Stammgast
PS zum Nebensatz. Wenn du ein Teil deiner App Datein für andere Apps zur Verfügung stellen willst würde ich das mit einen Reciver machen.
 
Zuletzt bearbeitet: