8

Ich verwende Intent.ACTION_OPEN_DOCUMENT_TREE, um meiner Anwendung Schreibzugriff auf externen Speicher (auf Lollipop und Marshmallow) zu gewähren.Storage Access Framework in Test-App

Aber ich möchte in Testanwendung auf externen Speicher schreiben. Intent.ACTION_OPEN_DOCUMENT_TREE verwendet den Systemdialog, so dass ich die Berechtigung während der Tests nicht erteilen kann. Ich habe auch versucht, es in der Anwendung zuzulassen und dann in Tests zu verwenden, aber es wird nicht geteilt - Anwendungsprojekt und Testprojekt sind unterschiedliche Pakete.

Kennt jemand eine Workaround, die z. Genehmigung für den gesamten externen Speicher zu Testzwecken erteilen? Vielleicht durch Ändern einiger Systemeigenschaften?

adb shell setprop SOMEPROPERTY 1

Antwort

1

können Sie versuchen, diese Befehle für die Erteilung und den Widerruf von Berechtigungen

adb pm grant com.package.myapp android.permission.<PERMISSION> 
adb pm revoke com.package.myapp android.permission.<PERMISSION> 

Berechtigungen zum Lesen/Schreiben externe Speicher sind

android.permission.WRITE_EXTERNAL_STORAGE 
android.permission.READ_EXTERNAL_STORAGE 

Hier ist der Link zu Video, wo es ist erklärt: Runtime Permissions in Android 6.0 Marshmallow (Android Development Patterns Ep 3).

+0

Leider ist dies nur Ersatz für den Zugang zu externen Hauptspeicher. Ich brauche Zugriff mit Intent.ACTION_OPEN_DOCUMENT_TREE auf sekundäre externe Speicher und ich muss diese Funktionalität testen. – Bhiefer

0

Hier als Problemumgehung können Sie adb Shell Eingabe KeyEvent für die Überprüfung Grant Berechtigung Kontrollkästchen verwenden.

Verbrauch:

adb shell input [text|keyevent] 
    adb shell input text <string> 
    adb shell input keyevent <event_code> 

More Details you can find here.

+0

Ich muss die Erlaubnis in der Testanwendung gewähren. Aber ich weiß nicht einmal, wie ich das System "Öffnen mit" -Dialog in der TEST-Anwendung zeigen soll, um es z. mit dieser adb shell eingabe ... oder manuell. Hast du ein Beispiel? – Bhiefer