8

Я использую Intent.ACTION_OPEN_DOCUMENT_TREE, чтобы предоставить моему приложению возможность записи на внешнее хранилище (на Lollipop и Marshmallow).Storage Access Framework в тестовом приложении

Но я хотел бы написать внешнее хранилище в тестовом приложении. Intent.ACTION_OPEN_DOCUMENT_TREE использует системный диалог, поэтому я не могу предоставить разрешение во время тестов. Я также пытался разрешить его в приложении, а затем использовать его в тестах, но он не используется совместно - проект приложения и тестовый проект - это разные пакеты.

Кто-нибудь знает обходное решение, которое может, например, предоставить разрешение для всего внешнего хранилища для целей тестирования? Может быть, изменив какое-то системное свойство?

adb shell setprop SOMEPROPERTY 1

ответ

1

Вы можете попробовать это команды для предоставления и аннулирования полномочия по

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

Права доступа для чтения/записи внешнего хранения являются

android.permission.WRITE_EXTERNAL_STORAGE 
android.permission.READ_EXTERNAL_STORAGE 

Вот ссылка на видео, где объяснено: Runtime Permissions in Android 6.0 Marshmallow (Android Development Patterns Ep 3).

+0

К сожалению, это только замена для доступа к основным внешним хранения. Мне нужен доступ с помощью Intent.ACTION_OPEN_DOCUMENT_TREE для вторичных внешних хранилищ, и мне нужно проверить эту функциональность. – Bhiefer

0

Здесь в качестве обходного пути вы можете использовать adb shell input keyevent для проверки разрешения на разрешение.

Использование:

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

More Details you can find here.

+0

Мне нужно предоставить разрешение в тестовом приложении. Но я даже не знаю, как показать диалог «Открыть с» в приложении TEST, чтобы иметь возможность предоставить его, например. с этим вводом оболочки adb ... или вручную. У вас есть пример? – Bhiefer