Zum Schreiben auf externen Speicher ist eine Berechtigung erforderlich. Dateispeicher

Facebook Google Plus Zugriff verweigert oder Problem mit der Zugriffsberechtigung für eine Datei/einen Ordner auf einem externen Laufwerk

Manchmal beim Verbinden externes Laufwerk Sie müssen einem Computer mit Windows 2000 Pro, XP oder Vista Berechtigungen/Privilegien zuweisen. Da die Dateien einem anderen Konto gehören, erhalten Sie möglicherweise die Fehlermeldung „Zugriff verweigert“ oder „Nicht verfügbar“, wenn Sie versuchen, das Laufwerk oder den Ordner darauf zu öffnen.

Nachfolgend finden Sie Informationen zum Übertragen des Eigentums auf den aktuellen Benutzer in XP Professional. Diese Anleitung gilt auch für Windows Vista.
(XP-Startseite.)

So übertragen Sie den Besitz auf den aktuellen Benutzer in Windows XP HOME:

  • Starten in den abgesicherten Modus.
  • Klicken Sie mit der rechten Maustaste auf die gewünschte Datei/den gewünschten Ordner und öffnen Sie den Abschnitt Eigenschaften.
  • Klicken Sie auf Sicherheit > Erweitert > Besitzer und markieren Sie Konto Benutzer auf dem Computer, der Eigentümer dieser Dateien und Ordner werden soll.
    Aktivieren Sie das Kontrollkästchen „Eigentümer für Untercontainer und Ordner ersetzen“, um zuzulassen, dass alle Dateien in einem Ordner Änderungen erben (nur wenn sich die Ordnerberechtigungen ändern).
  • Wenn Sie die Meldung „Sie haben keine Berechtigung zum Lesen des Inhalts des Ordners [ Ordnernamen]. Möchten Sie die Berechtigungen für diesen Ordner ändern, damit Sie über die entsprechenden Rechte verfügen? voller Zugriff? Alle Berechtigungen werden ersetzt, wenn Sie auf die Schaltfläche „Ja“ klicken. Klicken Sie auf die Schaltfläche „Ja“.
  • Weitere Informationen finden Sie in den folgenden Microsoft Support Center-Artikeln:

    Wenn Sie die Berechtigungen nicht ändern können, prüfen Sie, ob Ihre Dateien mit der Windows-Verschlüsselungsfunktion verschlüsselt sind. Statt der üblichen schwarzen Schrift haben sie eine grüne Schrift:

    Um diese Dateien wiederherzustellen, müssen Sie das Laufwerk erneut an den ursprünglichen Computer anschließen. Dateien werden ohne Verwendung von Seagate-Software verschlüsselt. Weitere Informationen finden Sie in den folgenden Artikeln der Microsoft Knowledge Base:

    Schließlich kann die Dateistruktur beschädigt sein.

    • Führen Sie eine Festplattenprüfung durch, um zu versuchen, die Beschädigung zu reparieren.
    • Wenn die Partition beschädigt ist, befolgen Sie die oben beschriebenen Schritte.

    HINWEIS AUF ENTWICKLER UND WEBSITES VON DRITTANBIETERN. Seagate identifiziert Drittentwickler und Drittprodukte nur zu Informationszwecken und bevorzugt oder empfiehlt keines der genannten Unternehmen (direkt oder indirekt). Seagate übernimmt keine Gewährleistungen jeglicher Art (weder stillschweigend noch anderweitig) hinsichtlich der Leistung oder Zuverlässigkeit dieser Unternehmen oder Produkte. Seagate ist nicht mit den genannten Unternehmen verbunden und kontrolliert keines dieser Unternehmen. Daher übernimmt Seagate keinerlei Verantwortung im Zusammenhang mit ihnen und lehnt jegliche Haftung in Bezug auf die Handlungen oder Produkte der genannten Unternehmen ab. Bitte führen Sie Ihre eigene unabhängige Beurteilung durch, bevor Sie mit einem Unternehmen Geschäfte machen. Hinter technische Eigenschaften Für weitere Informationen und Garantieinformationen wenden Sie sich bitte direkt an den jeweiligen Hersteller. IN dieses Dokument Es werden Links zu Websites Dritter bereitgestellt, über die Seagate keine Kontrolle hat. Solche Links werden als Annehmlichkeit zur Verfügung gestellt und werden auf eigenes Risiko des Benutzers verwendet. Seagate gibt keine Garantien oder Empfehlungen hinsichtlich der auf solchen Websites bereitgestellten Materialien und übernimmt keine Verantwortung für diese oder die Nutzung solcher Websites.

    Das Android-Dateisystem ist den festplattenbasierten Dateisystemen, die in anderen Systemen verwendet werden, sehr ähnlich. In diesem Tutorial wird erklärt, wie Sie mit dem Android-Dateisystem arbeiten und Dateien mithilfe der File-Klasse lesen und schreiben.

    Auswahl zwischen internem und externem Speicher

    Alle Android-Geräte verfügen über zwei Speicherplätze für Dateien: externen und internen Speicher. Diese Namen sind von den ersten Android-Geräten geblieben. Die meisten Geräte verwendeten flüchtigen Speicher (internen Speicher) und Wechseldatenträger wie z microSD-Karten(externer Speicher). Auf einigen Geräten ist der permanente Speicherplatz zwischen internen und externen Partitionen aufgeteilt, sodass wir auch ohne SD-Karten sowohl „internen“ als auch „externen“ Speicherplatz haben. Dabei spielt es für die API keine Rolle, ob sich der externe Speicherplatz auf einem Wechseldatenträger befindet oder nicht. Die Liste liefert allgemeine Fakten zu beiden Raumtypen:

    • Interne Speicher:
    • Immer verfügbar.
    • Standardmäßig ist der Zugriff auf Dateien nur den Anwendungen gestattet, die die Dateien erstellt haben.
    • Wenn Sie eine Anwendung deinstallieren, werden alle Anwendungsdateien aus dem internen Speicher gelöscht.
    • Interner Speicher ist besser, wenn Sie sicherstellen möchten, dass andere Anwendungen nicht auf Ihre Daten zugreifen.
    • Externer Speicher:
    • Nicht immer verfügbar, da der Benutzer den Wechselspeicher vom Gerät entfernen kann.
    • Die Dateien können von jeder Anwendung gelesen werden.
    • Wenn Sie eine Anwendung deinstallieren, werden die Dateien nur gelöscht, wenn Sie sie in dem Verzeichnis gespeichert haben, das Sie mit der Methode getExternalFilesDir() erhalten haben.
    • Externer Speicher ist ein großartiger Ort für Dateien, die nicht viel Privatsphäre benötigen. Externe Speicher können auch Dateien speichern, die auf dem Computer des Benutzers geöffnet werden können oder die Sie in mehreren Anwendungen gleichzeitig verwenden möchten.
    Einholen von Berechtigungen für externen Speicher

    Um in den externen Speicher zu schreiben, müssen Sie WRITE_EXTERNAL_STORAGE-Rechte in der Manifestdatei anfordern:

    ...

    < manifest . . . >

    < uses - permission android : name = "android.permission.WRITE_EXTERNAL_STORAGE" / >

    . . .

    < / manifest >

    Achtung: Derzeit haben alle Anwendungen die Berechtigung, Dateien aus externen Speichern zu lesen, ohne eine besondere Erlaubnis einzuholen. Dies wird sich jedoch in zukünftigen Versionen ändern. Wenn Ihre Anwendung Dateien aus dem externen Speicher lesen (aber nicht schreiben) muss, muss ihr die Berechtigung READ_EXTERNAL_STORAGE erteilt werden. Um sicherzustellen, dass Ihre Anwendung immer wie erwartet funktioniert, deklarieren Sie jetzt Leseberechtigungen, damit Sie sich in Zukunft keine Sorgen mehr darüber machen müssen:

    ...

    < manifest . . . >

    < uses - permission android : name = "android.permission.READ_EXTERNAL_STORAGE" / >

    . . .

    < / manifest >

    Wenn Ihre Anwendung jedoch die Schreibberechtigung WRITE_EXTERNAL_STORAGE verwendet, werden Leseberechtigungen implizit festgelegt.

    Sie benötigen keine zusätzlichen Berechtigungen, um Dateien im internen Speicher zu speichern. Anwendungen verfügen immer über Schreib- und Leseberechtigungen für interne Speicherverzeichnisse.

    Dateien im internen Speicher speichern

    Beim Speichern von Dateien im internen Speicher können Sie das entsprechende Verzeichnis als Objekt vom Typ Datei abrufen, indem Sie eine der Methoden aufrufen:

    getFilesDir() Gibt ein File-Objekt zurück, das das interne Speicherverzeichnis Ihrer Anwendung darstellt. getCacheDir() Gibt ein File-Objekt zurück, das das interne Speicherverzeichnis zum Speichern temporärer Cache-Dateien darstellt. Löschen Sie unbedingt alle Dateien, sobald Sie sie nicht mehr benötigen, und legen Sie eine angemessene Grenze für die Speichermenge fest, die Sie zu einem bestimmten Zeitpunkt verwenden, beispielsweise 1 MB. Wenn der Speicherplatz Ihres Systems knapp wird, kann es sein, dass Ihre temporären Dateien ohne Vorwarnung gelöscht werden.

    Erschaffen neue Datei In einem der Verzeichnisse können Sie den File()-Konstruktor verwenden und ihm ein Objekt vom Typ File übergeben, das mit der entsprechenden Methode erhalten wurde:

    Dateidatei= new File(context.getFilesDir(), filename);

    Datei file = new File(context. getFilesDir(), filename);

    Sie können auch die Methode openFileOutput() verwenden, um ein FileOutputStream-Objekt abzurufen, das die Datei in das interne Verzeichnis schreibt. Ein Beispiel für das Schreiben von Text in eine Datei:

    String filename = „myfile“; String string = „Hallo Welt!“; FileOutputStream OutputStream; try ( OutputStream = openFileOutput(filename, Context.MODE_PRIVATE); OutputStream.write(string.getBytes()); OutputStream.close(); ) Catch (Exception e) ( e.printStackTrace(); )

    String filename = "myfile" ;

    String string = „Hallo Welt!“ ;

    FileOutputStream OutputStream ;

    versuchen (

    OutputStream = openFileOutput (Dateiname, Kontext. MODE_PRIVATE);

    Ausgabestrom. write(string. getBytes());

    Ausgabestrom. schließen();

    ) Catch (Ausnahme e) (

    e. printStackTrace();

    Oder wenn Sie eine temporäre Datei erstellen müssen, verwenden Sie createTempFile() . Im folgenden Beispiel ruft die Methode den Dateinamen von der URL ab und erstellt eine Datei mit dem angegebenen Namen im internen temporären Verzeichnis:

    public File getTempFile(Context context, String url) ( File file; try ( String fileName = Uri.parse(url).getLastPathSegment(); file = File.createTempFile(fileName, null, context.getCacheDir()); Catch (IOException e) ( // Fehler beim Erstellen der Datei) Rückgabedatei)

    öffentliche Datei getTempFile(Context context, String url) (

    Datei Datei ;

    versuchen (

    String fileName = Uri . parse(url) . getLastPathSegment();

    file = Datei . createTempFile(fileName, null, context. getCacheDir());

    Catch (IOException e) (

    // Fehler beim Erstellen der Datei

    Rückgabedatei;

    Hinweis: Der Speicherort des internen Speicherverzeichnisses Ihrer App im Android-Dateisystem hängt vom Paketnamen ab. Technisch gesehen kann eine andere Anwendung Ihre internen Dateien lesen, wenn Sie den Zugriffsmodus auf „Lesen“ einstellen. Allerdings muss die andere Anwendung auch den Paketnamen Ihrer Anwendung und den Namen der Datei selbst kennen. Andere Anwendungen können den Inhalt des internen Speichers nicht einsehen und haben keine Lese- oder Schreibberechtigung, es sei denn, es wird ausdrücklich angegeben, dass die Datei gelesen oder geschrieben werden kann. Solange Sie also das MODE_PRIVATE-Flag für Ihre Dateien im internen Speicher verwenden, sind sie für andere Anwendungen nicht zugänglich.

    Speichern von Dateien auf einem externen Speicher

    Da auf den externen Speicher möglicherweise nicht zugegriffen werden kann – beispielsweise wenn Sie Ihr Gerät an Ihren Computer anschließen oder Ihre SD-Karte entfernen – sollten Sie immer prüfen, ob die Partition zugänglich ist, bevor Sie versuchen, sie zu verwenden. Sie können den externen Speicherstatus mit der Methode getExternalStorageState() abfragen. Wenn die Methode einen Status gleich MEDIA_MOUNTED zurückgegeben hat, können Sie Ihre Dateien lesen und schreiben. Ein Beispiel für eine Methode zur Prüfung von externem Speicher auf Verfügbarkeit:

    /* Überprüfen Sie den Speicher auf Lese- und Schreibverfügbarkeit*/ public boolean isExternalStorageWritable() ( String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) ( return true; ) return false; ) /* Prüfen der externe Speicher für Leseverfügbarkeit */ public boolean isExternalStorageReadable() ( String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) ( return true; ) return FALSCH; )

    /* Überprüfen Sie den Speicher auf Lese- und Schreibzugriff*/

    öffentlicher boolescher Wert isExternalStorageWritable() (

    if (Environment . MEDIA_MOUNTED . equal ( state ) ) (

    return true ;

    falsch zurückgeben ;

    /* Externen Speicher auf Lesbarkeit prüfen */

    öffentlicher boolescher Wert isExternalStorageReadable() (

    String-Status = Umgebung. getExternalStorageState();

    if (Environment . MEDIA_MOUNTED . equal ( state ) ||

    Umfeld. MEDIA_MOUNTED_READ_ONLY . gleich(Zustand)) (

    return true ;

    falsch zurückgeben ;

    Obwohl der Inhalt des externen Speichers vom Benutzer oder einer anderen Anwendung geändert werden kann, gibt es zwei Kategorien von Dateien, die Sie darin speichern können:

    Öffentliche Dateien Dateien, die für andere Anwendungen und Benutzer zugänglich sein sollen. Nach der Deinstallation der Anwendung sollten diese Dateien für den Benutzer weiterhin zugänglich bleiben. Dabei handelt es sich beispielsweise um in Ihrer Bewerbung aufgenommene Fotos oder heruntergeladene Dateien. Private Dateien Dateien, die rechtmäßig zu einer Bewerbung gehören und zusammen mit der Bewerbung gelöscht werden sollten. Obwohl diese Dateien technisch für den Benutzer und andere Anwendungen zugänglich sind, da sie sich im externen Speicher befinden, legen sie ihre Daten tatsächlich nicht außerhalb der Anwendung offen. Wenn Sie die Anwendung deinstallieren, werden auch alle diese Dateien gelöscht. Dabei handelt es sich beispielsweise um temporäre Mediendateien.

    Wenn Sie öffentliche Dateien in einem externen Speicher speichern möchten, verwenden Sie die Methode getExternalStoragePublicDirectory(), um ein Dateiobjekt abzurufen, das dem Verzeichnis entspricht. Als Argument nimmt die Methode den Dateityp an, den Sie speichern möchten. Logischerweise kann sie mit anderen öffentlichen Dateien organisiert werden, beispielsweise mit Musikverzeichnissen (DIRECTORY_MUSIC) oder Bildverzeichnissen (DIRECTORY_PICTURE). Zum Beispiel:

    public File getAlbumStorageDir(String albumName) ( // Ein öffentliches Verzeichnis mit Bildern abrufen Datei file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), albumName); if (!file.mkdirs()) ( Log.e(LOG_TAG, „Verzeichnis nicht erstellt“); ) Rückgabedatei;

    öffentliche Datei getAlbumStorageDir(String albumName) (

    // Erhalten eines öffentlichen Katalogs von Bildern

    Datei file = new File(Environment. getExternalStoragePublicDirectory(

    Umfeld. DIRECTORY_PICTURES), albumName);

    if (! file . mkdirs () ) (

    Protokoll. e(LOG_TAG, „Verzeichnis nicht erstellt“);

    Rückgabedatei;

    Wenn Sie eine private Anwendungsdatei speichern möchten, verwenden Sie die Methode getExternalFilesDir() und übergeben Sie den Namen des Verzeichnistyps. Jedes auf diese Weise erstellte Verzeichnis wird zum Stammverzeichnis Ihrer Anwendung hinzugefügt und sammelt alle externe Dateien, die zusammen mit der Bewerbung gelöscht wird.

    Ein Beispiel für die Erstellung eines Verzeichnisses für Ihr eigenes Fotoalbum:

    public File getAlbumStorageDir(Context context, String albumName) ( // Das private Verzeichnis für das Fotoalbum der Anwendung abrufen File file = new File(context.getExternalFilesDir(Environment.DIRECTORY_PICTURES), albumName); if (!file.mkdirs()) ( Log.e (LOG_TAG, „Verzeichnis nicht erstellt“); Rückgabedatei;

    Denken Sie daran, dass getExternalFilesDir() Verzeichnisse innerhalb eines Verzeichnisses erstellt, das mit der Anwendung gelöscht wird. Wenn nach der Deinstallation der Anwendung auf Dateien zugegriffen werden muss, z. B. Kamerabilder, verwenden Sie die Methode getExternalStoragePublicDirectory().

    Es ist sehr wichtig, Verzeichnisnamen zu verwenden, die durch API-Konstanten wie DIRECTORY_PICTURES dargestellt werden, unabhängig davon, ob die Methode getExternalFilesDir() oder getExternalStoragePublicDirectory() verwendet wurde. Vordefinierte Verzeichnisnamen ermöglichen dem System die korrekte Verarbeitung Ihrer Dateien. Beispielsweise werden Dateien, die im Verzeichnis DIRECTORY_RINGTONES gespeichert sind, vom Medienscanner des Systems als Klingeltöne und nicht als Musikdateien gekennzeichnet.

    Fordern Sie freien Platz an

    Wenn Sie im Voraus wissen, wie viele Daten Sie speichern müssen, können Sie mithilfe der Methoden getFreeSpace() oder getTotalSpace() herausfinden, ob genügend Speicherplatz vorhanden ist, ohne auf eine IOException warten zu müssen. Mit diesen Methoden können Sie die Menge des freien bzw. Gesamtspeicherplatzes auf einer Speicherpartition ermitteln. Diese Information Dies ist auch nützlich, um zu vermeiden, dass eine Speicherpartition über einen bestimmten Schwellenwert hinaus gefüllt wird.

    Das System garantiert jedoch nicht, dass Sie so viel schreiben können, wie die Methode getFreeSpace() angibt. Wenn Freiraum etwas mehr, als Sie sparen möchten, oder wenn Dateisystem weniger als 90 % gefüllt, können Sie wahrscheinlich weitermachen, andernfalls ist es besser, darauf zu verzichten.

    Hinweis: Sie müssen die Menge des freien Speicherplatzes nicht überprüfen, bevor Sie Ihre Datei schreiben. Sie können versuchen, die Datei zu schreiben und die IOException zu behandeln. Möglicherweise wissen Sie auch nicht genau, wie viel Platz Sie benötigen. Wenn Sie beispielsweise die Kodierung der Datei vor dem Speichern ändern, z. B. durch die Konvertierung von PNG in JPEG, kennen Sie möglicherweise nicht die endgültige Dateigröße.

    Mit OneDrive können Sie Fotos und Dokumente teilen Microsoft Office, andere Dateien und ganze Ordner. In OneDrive gespeicherte Dateien und Ordner sind privat, bis Sie sie freigeben. Sie können Ihren Zugang jederzeit kündigen.

    Hinweis: Die Freigabe ist auf Basis oder nur Speicher beschränkt OneDrive-Versionen. Die Beschränkungen werden nach 24 Stunden zurückgesetzt, Sie können die Dateigrößenbeschränkung jedoch erhöhen öffentlicher Zugang und erhalten Sie zusätzliche Freigabefunktionen.

    Einen Link erstellen

    Diese Links verfügen jedoch standardmäßig über eine Bearbeitungsberechtigung. Wenn Sie dem Benutzer nur die Berechtigung „Anzeigen“ erteilen möchten, müssen Sie die OneDrive-Website verwenden, um den Link zu erstellen (oder den von Ihnen erstellten Link bearbeiten).

    E-Mail

    Wählen Sie diese Option, wenn Sie eine Einladung per senden möchten Email Benutzer oder Gruppen hinzufügen und dann verfolgen, wen Sie eingeladen haben. Dies ermöglicht Ihnen auch, die Berechtigung später bei Bedarf zu entfernen.


    Anmerkungen:

    Bereitstellung an Empfänger Zusatzfunktionen Kontrolle und Zusammenarbeit in freigegebenen Ordnern

    Wenn Sie Ordner freigeben und Bearbeitungsberechtigungen erteilen, können Benutzer mit Zugriff die freigegebenen Ordner zu ihrem eigenen OneDrive hinzufügen. Dadurch können sie einen solchen Ordner zusammen mit ihren eigenen Ordnern und Elementen speichern, Elemente einfach zwischen Ordnern verschieben und bequem offline damit arbeiten. Alle von ihnen vorgenommenen Änderungen werden mit dem freigegebenen Ordner synchronisiert, sodass jeder Zugriff auf den Ordner erhält aktuelle Version Elemente.

      So geben Sie einen Ordner über einen Link frei: Klicken Sie auf Link abrufen und wählen Sie im Fenster „Freigeben“ die Option „Jeder mit dem Link kann dieses Element bearbeiten“ aus.

      Um einen Ordner per E-Mail freizugeben: Wählen Sie „Per E-Mail senden“ und wählen Sie im Fenster „Freigabe“ die Option „Bearbeiten“ aus.

    Tipp: Der Empfänger kann seinen OneDrive-Speicher erweitern geteilte Ordner, nicht einzelne Dateien. Wenn Sie möchten, dass der Empfänger Dateien zu OneDrive hinzufügt, legen Sie diese zunächst in einem Ordner ab und geben Sie ihn dann frei.

    Sehen Sie sich eine Liste der von Ihnen geteilten Elemente an

    Wählen Sie in OneDrive.com im linken Bereich „Freigegeben“ und dann „Ich teile“ aus.

    So geben Sie Dateien oder Ordner frei.

    Erstellen Sie einen kopierbaren Link zu einer Datei oder einem Ordner

    Eine andere Möglichkeit zum Teilen besteht darin, einen Link zu der Datei oder dem Ordner zu erstellen, den Sie kopieren und in eine Textnachricht oder auf einer Website einfügen können. Benutzer, denen Sie diese Links mitteilen, können sie an andere weiterleiten.

    Anmerkungen:

    Teilen Sie in der mobilen OneDrive-App

    Weitere Informationen finden Sie in den folgenden Artikeln:

    Weitere Informationen

    Onlinehilfe
    Weitere Hilfeseiten für OneDrive und OneDrive for Business finden Sie hier.
    Informationen zur mobilen OneDrive-App finden Sie unter Fehlerbehebung bei der mobilen OneDrive-App.

    Email Unterstützung
    Wenn Sie Hilfe brauchen, schütteln Sie Mobilgerät wenn die OneDrive-App darauf geöffnet ist, oder senden Sie eine E-Mail an das OneDrive-Supportteam. Um den OneDrive for Business-Support zu kontaktieren, auf einem Windows-PC oder Mac-Computer Klicken Sie im Benachrichtigungsbereich oder in der Menüleiste auf das OneDrive-Symbol und wählen Sie dann „Andere“ > „Feedback senden“ > „Etwas gefällt mir nicht“.

    OneDrive for Business-Administratoren finden möglicherweise auch die OneDrive for Business Tech Community, die OneDrive for Business-Administratorhilfe und den Office 365 for Business-Support hilfreich.

    Berechtigungen bestimmen, welche Daten oder Funktionen einer Anwendung zur Verfügung stehen Google Play. Sie können bei der Installation des Programms auf einem Gerät mit Android 6.0 und höher konfiguriert werden. Beispielsweise fordern Apps manchmal Zugriff auf Kontakte oder Standortinformationen an. Sie können Berechtigungen auch nach der Installation konfigurieren.

    Beratung. Um Ihre Android-Version herauszufinden, öffnen Sie Ihre Geräteeinstellungen und wählen Sie „Über das Telefon“, „Über das Tablet“ oder „Über das Gerät“.

    Neue Anwendungen

    Einige Anwendungen von Spielladen Fordern Sie vor der Installation Zugriff auf die Daten an. Auf einem Gerät mit Android 6.0 oder höher können Sie die Berechtigungen auch während der Nutzung des Programms anpassen.

    Auf dem Gerät installierte Anwendungen

    Wenn Sie eine installierte Anwendung aktualisieren, können sich deren Berechtigungen ändern.

    Automatisches Update

    Anwendungen für Android OS 6.0 und spätere Versionen. Sie müssen weder bestätigen noch Berechtigungen erteilen. Die Anwendung fragt danach, wenn sie zum ersten Mal Zugriff auf Daten oder Funktionen benötigt.

    Andere Anwendungen.

    Sie müssen keine Berechtigungen erteilen, wenn Sie dies bereits zuvor getan haben. Wenn für die Anwendung zusätzliche Rechte erforderlich sind, werden Sie vom System aufgefordert, das Update zu akzeptieren oder abzulehnen.

    Um selbst nach allen neuen Versionen zu suchen, deaktivieren Sie die Funktion zur automatischen Aktualisierung. Wie das geht, wird im Folgenden beschrieben.

    So deaktivieren Sie die automatische Aktualisierung

    Wählen Sie die entsprechende Anweisung aus. So deaktivieren Sie die automatische Aktualisierung für separater Antrag

    So deaktivieren Sie die automatische Aktualisierung für alle Instant Apps-Apps

    Sie können den Zugriff auf Daten oder Funktionen während der Nutzung der Anwendung zulassen oder verweigern. Um die Instant App-Berechtigungen anzuzeigen, führen Sie die folgenden Schritte aus:

    Berechtigungen festlegen

    Sie können Anwendungsberechtigungen in Ihren Geräteeinstellungen ändern. Bitte beachten Sie, dass das Blockieren manchmal zu Fehlern im Programm führt. Notiz. Wenn Sie verwenden Google Benutzerkonto

    In einer Bildungs-, Regierungs- oder kommerziellen Organisation kann ein Administrator einige Berechtigungen mithilfe der Device Policy-Anwendung verwalten.

    Installierte Anwendung

    Sofortige App Alle installierten Anwendungen mit bestimmten Berechtigungen

    Wenn in der Anwendung Fehler auftreten, führen Sie die folgenden Schritte aus.

    Android verwendet ein Dateisystem, das den festplattenbasierten Dateisystemen auf anderen Plattformen ähnelt. In diesem Tutorial wird beschrieben, wie Sie mit dem Android-Dateisystem arbeiten, um Dateien mithilfe der Datei-API zu lesen und zu schreiben.

    Wählen Sie internen oder externen Speicher

    Alle Android-Geräte verfügen über zwei Dateispeicherbereiche: „internen“ und „externen“ Speicher. Diese Namen stammen aus den Anfängen von Android, als angenommen wurde, dass die meisten Geräte über einen integrierten permanenten Speicher (interner Speicher) sowie austauschbaren Speicher wie eine Micro-SD-Karte (externer Speicher) verfügen. Einige Geräte unterteilen den persistenten Speicherplatz in „interne“ und „externe“ Partitionen, d. h. Auch ohne Wechselspeicher gibt es immer zwei Speicher, und das API-Verhalten für externen Speicher ist dasselbe, unabhängig davon, ob er entfernbar ist oder nicht. Die folgenden Listen fassen die Fakten zu jedem Repository zusammen.

    Interne Speicher:

    • Immer verfügbar.
    • Auf die hier gespeicherten Dateien kann standardmäßig nur Ihre Anwendung zugreifen.
    • Wenn ein Benutzer Ihre App deinstalliert, löscht das System alle Ihre App-Dateien aus dem internen Speicher.

    Der interne Speicher eignet sich am besten, wenn Sie sicherstellen möchten, dass weder der Benutzer noch andere Anwendungen auf die Dateien zugreifen können.

    Externer Speicher:

    • Nicht immer verfügbar, da der Benutzer ein externes Laufwerk als USB-Speicher bereitstellen und in einigen Fällen vom Gerät entfernen kann.
    • Das Lesen ist für jedermann gestattet, sodass hier gespeicherte Dateien ohne Ihre Kontrolle gelesen werden können.
    • Wenn ein Benutzer Ihre Anwendung löscht, löscht das System Ihre Anwendungsdateien nur dann von hier, wenn Sie sie in einem Verzeichnis von getExternalFilesDir() speichern.

    Hilfreicher Rat: Obwohl Apps standardmäßig im internen Speicher installiert werden, können Sie das Attribut „android:installLocation“ in Ihrem Manifest angeben, um die Installation Ihrer App im externen Speicher zu ermöglichen. Benutzer schätzen diese Option, wenn die APK-Größe sehr groß ist und sie über externen Speicherplatz verfügen, der größer ist als der interne Speicher. Zum Erhalten Weitere Informationen, siehe Installationspfad der Anwendung.

    Holen Sie sich Berechtigungen für externe Laufwerke

    Um auf ein externes Laufwerk zu schreiben, müssen Sie die Berechtigung WRITE_EXTERNAL_STORAGE in Ihrer Manifestdatei anfordern:

    ...

    Achtung: Derzeit haben alle Anwendungen die Möglichkeit, ohne besondere Erlaubnis von externen Speichergeräten zu lesen. Dies wird sich jedoch in einer zukünftigen Version ändern. Wenn Ihre Anwendung den externen Speicher lesen (aber nicht darauf schreiben) muss, müssen Sie die Berechtigung READ_EXTERNAL_STORAGE deklarieren. Um sicherzustellen, dass Ihre Anwendung weiterhin wie erwartet funktioniert, müssen Sie diese Erlaubnis jetzt erklären, bevor die Änderungen wirksam werden.

    ...

    Wenn Ihre Anwendung jedoch die Berechtigung WRITE_EXTERNAL_STORAGE verwendet, verfügt sie implizit auch über die Berechtigung, externen Speicher zu lesen.

    Sie benötigen keine Berechtigungen, um Dateien im internen Speicher zu speichern. Ihre Anwendung hat immer die Berechtigung, Dateien im internen Speicherverzeichnis zu lesen und zu schreiben.

    Speichern Sie die Datei im internen Speicher

    Wenn Sie eine Datei im internen Speicher speichern, können Sie das entsprechende Verzeichnis als Dateiobjekt anfordern, indem Sie eine von zwei Methoden aufrufen:

    getFilesDir() gibt eine Datei zurück, bei der es sich um das interne Verzeichnis Ihrer Anwendung handelt. getCacheDir() gibt eine Datei zurück, bei der es sich um das interne Verzeichnis für die temporären Cache-Dateien Ihrer Anwendung handelt. Stellen Sie sicher, dass Sie Dateien nicht mehr einzeln löschen müssen, und legen Sie eine angemessene Grenze für die Speichermenge fest, die Sie zu einem bestimmten Zeitpunkt verwenden, z. B. 1 MB. Wenn auf dem System nicht mehr genügend Speicherplatz vorhanden ist, werden Ihre Cache-Dateien möglicherweise ohne Vorwarnung gelöscht.

    Um eine neue Datei in einem dieser Verzeichnisse zu erstellen, können Sie den File()-Konstruktor verwenden und eine von einer der oben genannten Methoden bereitgestellte Datei übergeben, die auf Ihr internes Verzeichnis verweist. Zum Beispiel:

    Datei file = new File(context.getFilesDir(), filename);

    Alternativ können Sie openFileOutput() aufrufen, um einen FileOutputStream zu erhalten, der in eine Datei in Ihrem internen Verzeichnis schreibt. So schreiben Sie beispielsweise Text in eine Datei:

    String filename = „myfile“; String string = „Hallo Welt!“; FileOutputStream OutputStream; try ( OutputStream = openFileOutput(filename, Context.MODE_PRIVATE); OutputStream.write(string.getBytes()); OutputStream.close(); ) Catch (Exception e) ( e.printStackTrace(); )

    Oder wenn Sie einige Dateien zwischenspeichern müssen, sollten Sie createTempFile() verwenden. Die folgende Methode extrahiert beispielsweise einen Dateinamen aus einer URL und erstellt eine Datei mit demselben Namen im internen Cache-Verzeichnis Ihrer Anwendung:

    Öffentliche Datei getTempFile(Context context, String url) ( File file; try ( String fileName = Uri.parse(url).getLastPathSegment(); file = File.createTempFile(fileName, null, context.getCacheDir()); Catch (IOException e) ( // Fehler beim Erstellen der Datei) Rückgabedatei)

    Hinweis: Das interne Speicherverzeichnis Ihrer App verwendet den Paketnamen Ihrer App und befindet sich an einem speziellen Ort im Android-Dateisystem. Technisch gesehen kann eine andere Anwendung Ihre internen Dateien lesen, wenn Sie den Zugriffsmodus der Datei auf „Lesen“ einstellen. Andere Anwendungen müssen jedoch auch Ihren Paketnamen und Ihre Dateinamen kennen. Andere Anwendungen können Ihre internen Verzeichnisse nicht einsehen und haben keinen Lese- oder Schreibzugriff, es sei denn, Sie legen ausdrücklich Lese- oder Schreibberechtigungen fest. Während Sie also MODE_PRIVATE für Ihre Dateien im internen Speicher verwenden, sind sie für andere Anwendungen nicht zugänglich.

    Speichern Sie die Datei auf einem externen Laufwerk

    Da externer Speicher möglicherweise nicht verfügbar ist – beispielsweise wenn ein Benutzer Speicher auf einem PC bereitstellt oder eine SD-Karte entfernt, die externen Speicher bereitstellt – sollten Sie immer sicherstellen, dass auf eine Partition zugegriffen werden kann, bevor Sie darauf zugreifen. Sie können externe Speicherzustände abfragen, indem Sie getExternalStorageState() aufrufen. Wenn der zurückgegebene Status MEDIA_MOUNTED lautet, können Sie Dateien lesen und schreiben. Zur Ermittlung der Speicherverfügbarkeit sind beispielsweise die folgenden Methoden hilfreich:

    /* Prüft, ob externer Speicher zum Lesen und Schreiben verfügbar ist */ public boolean isExternalStorageWritable() ( String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) ( return true; ) return false; ) / * Überprüft, ob externer Speicher mindestens zum Lesen verfügbar ist */ public boolean isExternalStorageReadable() ( String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) ( return true; ) return false;

    Obwohl das externe Speichergerät vom Benutzer und anderen Anwendungen geändert werden kann, gibt es zwei Kategorien von Dateien, die Sie hier speichern können:

    Öffentliche Dateien Dateien, die für andere Anwendungen und den Benutzer frei zugänglich sein sollen. Wenn ein Benutzer Ihre Anwendung deinstalliert, sollten diese Dateien für den Benutzer weiterhin verfügbar bleiben.

    Zum Beispiel mit der Anwendung aufgenommene Fotos oder andere heruntergeladene Dateien.

    Persönliche Dateien Dateien, die rechtmäßig zu Ihrer Anwendung gehören und gelöscht werden sollten, wenn ein Benutzer Ihre Anwendung deinstalliert. Obwohl diese Dateien für den Benutzer und andere Anwendungen technisch zugänglich sind, weil Sie befinden sich auf einem externen Speicher. Dabei handelt es sich um Dateien, die für den Benutzer außerhalb Ihrer Anwendung keinen wirklichen Wert haben. Wenn ein Benutzer Ihre Anwendung deinstalliert, löscht das System alle Dateien aus dem externen privaten Verzeichnis Ihrer Anwendung.

    Zum Beispiel zusätzliche von Ihrer Anwendung heruntergeladene Ressourcen oder temporäre Mediendateien.

    Wenn Sie freigegebene Dateien auf einem externen Speichergerät speichern möchten, verwenden Sie die Methode, um die Datei abzurufen, die das entsprechende Verzeichnis auf dem externen Speichergerät darstellt. Die Methode benötigt ein Argument, das den Dateityp angibt, den Sie speichern möchten, damit sie logisch mit anderen öffentlichen Dateien wie DIRECTORY_MUSIC oder DIRECTORY_PICTURES organisiert werden können. Zum Beispiel:

    Öffentliche Datei getAlbumStorageDir(String albumName) ( // Das Verzeichnis für das öffentliche Bilderverzeichnis des Benutzers abrufen. Datei file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), albumName); if (!file.mkdirs()) ( Log.e(LOG_TAG, „Verzeichnis nicht erstellt“); Rückgabedatei;

    Wenn Sie für Ihre Anwendung private Dateien speichern möchten, können Sie das entsprechende Verzeichnis anfordern, indem Sie getExternalFilesDir() aufrufen und ihm einen Namen übergeben, der den erforderlichen Verzeichnistyp angibt. Jedes auf diese Weise erstellte Verzeichnis wird einem übergeordneten Verzeichnis hinzugefügt, das alle externen Speicherdateien Ihrer App enthält, die das System löscht, wenn der Benutzer Ihre App deinstalliert.

    Hier ist beispielsweise eine Methode, mit der Sie ein Verzeichnis für ein einzelnes Fotoalbum erstellen können:

    Public File getAlbumStorageDir(Context context, String albumName) ( // Ruft das Verzeichnis für das private Bilderverzeichnis der App ab. File file = new File(context.getExternalFilesDir(Environment.DIRECTORY_PICTURES), albumName); if (!file.mkdirs( )) ( Log.e(LOG_TAG, „Verzeichnis nicht erstellt“); ) Rückgabedatei )

    Wenn keiner der vordefinierten Unterverzeichnisnamen zu Ihren Dateien passt, können Sie getExternalFilesDir() aufrufen und stattdessen null übergeben. Dadurch wird das Stammverzeichnis für die privaten Verzeichnisse Ihrer Anwendung auf dem externen Laufwerk zurückgegeben.

    Unabhängig davon, ob Sie getExternalStoragePublicDirectory() für öffentliche Dateien oder getExternalFilesDir() für Dateien verwenden, die für Ihre Anwendung privat sind, ist es wichtig, dass Sie die von API-Konstanten wie DIRECTORY_PICTURES bereitgestellten Verzeichnisnamen verwenden. Diese Verzeichnisnamen stellen sicher, dass die Dateien vom System wie erwartet interpretiert werden. Beispielsweise werden in DIRECTORY_RINGTONES gespeicherte Dateien vom Medienscannersystem als Klingeltöne und nicht als Musik klassifiziert.

    Fordern Sie freien Platz an

    Wenn Sie im Voraus wissen, wie viele Daten Sie speichern werden, können Sie herausfinden, ob genügend Speicherplatz verfügbar ist, ohne eine IOException auszulösen, indem Sie getFreeSpace() oder getTotalSpace() aufrufen. Diese Methoden liefern Informationen über den aktuell verfügbaren Speicherplatz bzw. den gesamten Partitionsspeicherplatz. Diese Informationen sind auch nützlich, um zu verhindern, dass eine Laufwerkspartition über einen bestimmten Schwellenwert hinaus voll wird.

    Das System garantiert jedoch nicht, dass Sie so viele Bytes schreiben können, wie von getFreeSpace() angegeben. Wenn die zurückgegebene Zahl ein paar MB größer ist als die Größe der Daten, die Sie speichern möchten, oder wenn das Dateisystem zu weniger als 90 % voll ist, können Sie wahrscheinlich loslegen. Andernfalls lohnt es sich wahrscheinlich nicht, in den Speicher zu schreiben.

    Hinweis: Sie müssen den freien Speicherplatz nicht überprüfen, bevor Sie die Datei speichern. Stattdessen können Sie versuchen, die Datei zu schreiben und bei Auftreten eine IOException abzufangen. Möglicherweise müssen Sie dies tun, wenn Sie nicht genau wissen, wie viel Platz Sie benötigen. Wenn Sie beispielsweise die Kodierung einer Datei vor dem Speichern ändern, indem Sie ein PNG-Bild in ein JPEG konvertieren, kennen Sie die Dateigröße nicht im Voraus.

    Eine Datei löschen

    Sie sollten immer Dateien löschen, die Sie nicht mehr benötigen. Der einfachste Weg, eine Datei zu löschen, ist der Aufruf von delete() .

    MyFile.delete();

    Wenn die Datei im internen Speicher gespeichert ist, können Sie Context auch bitten, die Datei zu suchen und zu löschen, indem Sie deleteFile() aufrufen:

    MyContext.deleteFile(fileName);

    Hinweis: Wenn ein Benutzer Ihre Anwendung löscht, löscht das Android-System Folgendes:

    • Alle Dateien werden im internen Speicher gespeichert
    • Alle Dateien werden mit getExternalFilesDir() auf dem externen Laufwerk gespeichert.

    Sie sollten jedoch regelmäßig alle von getCacheDir() erstellten zwischengespeicherten Dateien manuell entfernen und auch regelmäßig andere Dateien entfernen, die Sie nicht mehr benötigen.

    mob_info