8

Sto utilizzando Intent.ACTION_OPEN_DOCUMENT_TREE per concedere all'applicazione l'accesso in scrittura alla memoria esterna (su Lollipop e Marshmallow).Storage Access Framework nell'app di prova

Ma vorrei scrivere sullo storage esterno nell'applicazione di test. Intent.ACTION_OPEN_DOCUMENT_TREE utilizza la finestra di dialogo del sistema in modo che non possa concedere l'autorizzazione durante i test. Ho anche provato a permetterlo nell'applicazione e poi usarlo nei test, ma non è condiviso - progetto di applicazione e progetto di test sono pacchetti diversi.

Qualcuno sa qualche soluzione alternativa che potrebbe ad es. concedere l'autorizzazione per l'intero storage esterno a scopo di test? Forse cambiando alcune proprietà del sistema?

adb shell setprop SOMEPROPERTY 1

risposta

1

Si può provare questo i comandi per la concessione e la revoca delle autorizzazioni

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

autorizzazioni per lettura/scrittura di archiviazione esterna sono

android.permission.WRITE_EXTERNAL_STORAGE 
android.permission.READ_EXTERNAL_STORAGE 

Ecco il link al video in cui è spiegato: Runtime Permissions in Android 6.0 Marshmallow (Android Development Patterns Ep 3).

+0

Purtroppo questo è solo la sostituzione per l'accesso alla memoria esterna principale. Ho bisogno di accedere utilizzando Intent.ACTION_OPEN_DOCUMENT_TREE agli archivi esterni secondari e ho bisogno di testare questa funzionalità. – Bhiefer

0

Qui come soluzione alternativa è possibile utilizzare adb shell input keyevent per la verifica della casella di controllo autorizzazione concessione.

utilizzati:

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

More Details you can find here.

+0

Devo concedere l'autorizzazione nell'applicazione di test. Ma non so nemmeno come mostrare la finestra di dialogo "Apri con" nell'applicazione TEST per essere in grado di garantirla, ad es. con questo input shell adb ... o manualmente. Hai qualche esempio? – Bhiefer