Wie kann ich angeben, dass keine Datensicherung mit android:dataExtractionRules zulässig ist?

Lesezeit: 3 Minuten

Benutzeravatar von Hector
Tyrannisieren

Meine aktuelle Android-Anwendung zielt auf 12 und höher ab.

Ich möchte keine Sicherung jeglicher Art zulassen und habe derzeit diese Manifesteinstellungen:

android:allowBackup="false"
android:fullBackupContent="false"

Jedoch die android:allowBackup="false" Einstellung gibt jetzt folgende Warnung aus:

Das Attribut android:allowBackup ist ab Android 12 veraltet und wird möglicherweise in zukünftigen Versionen entfernt. Erwägen Sie, das Attribut android:dataExtractionRules hinzuzufügen, das eine @xml-Ressource angibt, die Cloud-Backups und Geräteübertragungen auf Android 12 und höher konfiguriert.

Ich habe mir die Beispiele für angeschaut android:dataExtractionRules xml und keiner von ihnen zeigt, wie man das Äquivalent von konfiguriert allowBackup="false".

Was vermisse ich?

Ist es möglich zu erreichen allowBackup="false" mit Hilfe von android:dataExtractionRules XML?

Vadiks Benutzeravatar
Wadik

Hinzufügen dataExtractionRules -Attribut zu Ihrer AndroidManifest.xml-Datei mit einem Verweis auf data_extraction_rules.xml Datei:

<application
    android:allowBackup="false"
    android:fullBackupContent="false"
    android:dataExtractionRules="@xml/data_extraction_rules"
    ...>

Schließen Sie dann alle möglichen Domänen für Cloud-Sicherungen aus und d2d übertragen, aktualisieren oder eine Datei erstellen app/src/main/res/xml/data_extraction_rules.xml:

<?xml version="1.0" encoding="utf-8"?>
<data-extraction-rules>
    <cloud-backup>
        <exclude domain="root" />
        <exclude domain="file" />
        <exclude domain="database" />
        <exclude domain="sharedpref" />
        <exclude domain="external" />
    </cloud-backup>
    <device-transfer>
        <exclude domain="root" />
        <exclude domain="file" />
        <exclude domain="database" />
        <exclude domain="sharedpref" />
        <exclude domain="external" />
    </device-transfer>
</data-extraction-rules>

Das dataExtractionRules Attribut ist verfügbar für API 31 (Android 12) und höher. Behalten allowBackup und fullBackupContent Attribute für Android-Versionen vor API 31.

Notiz um vielleicht zu schweigen “Attribute dataExtractionRules is only used in API level 31 and higher (current min is 19)„Warnung, mit tools:targetApi="s" -Attribut (weil ältere Plattformen einfach Manifestattribute ignorieren, die sie nicht unterstützen, und die Warnung nutzlos ist).

  • Die Dokumente Sagen Sie “Wenn Sie eine angeben <include> element enthält das System standardmäßig keine Dateien mehr und sichert nur die angegebenen Dateien”. Hat jemand so etwas versucht <device-transfer><include domain="" tools:ignore="FullBackupContent" /></device-transfer>?

    – gmk57

    20. Juli um 12:49 Uhr

  • domain — Gibt den Standort der Ressource an. Gültige Werte für dieses Attribut sind: root, file, database, sharedpref, external. Ich bin mir nicht sicher, ob der leere Wert gültig ist. Die Dokumente Geben Sie kein Verhalten für einen leeren Wert an.

    – Wadik

    3. August um 23:19 Uhr


  • @CodingBruceLee, das ist eine großartige Frage – es wird nichts darüber gesagt, was ohne Pfad passiert, also würde eine bessere Antwort so aussehen:

    – Fattire

    11. August um 21:39 Uhr


  • Außerdem sehe ich nirgendwo in den Dokumenten, dass “false” für fullBackupContent legitim ist. Es soll auf eine XML-Datei verweisen, aber ein kurzer Blick auf die Quelle kann immer noch funktionieren, wenn “false” (oder eine Zeichenfolge, die nicht auf eine parsbare XML-Ressourcendatei zeigt) dort abgelegt ist. Sehen android.googlesource.com/platform/frameworks/base/+/master/core/…

    – Fattire

    11. August um 21:51 Uhr

  • @fattire, guter Punkt, es gibt a Hinweis das sagt, es kann boolean sein. IDE zeigt auch mögliche Werte als an boolean oder reference (wenn ich die Schnelldokumentation öffne, Strg + Q).

    – Wadik

    11. August um 23:01 Uhr


1436190cookie-checkWie kann ich angeben, dass keine Datensicherung mit android:dataExtractionRules zulässig ist?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy