测试应用程序中的存储访问框架
Posted
技术标签:
【中文标题】测试应用程序中的存储访问框架【英文标题】:Storage Access Framework in test app 【发布时间】:2015-12-15 04:11:19 【问题描述】:我正在使用 Intent.ACTION_OPEN_DOCUMENT_TREE
授予我的应用程序对外部存储的写入权限(在 Lollipop 和 Marshmallow 上)。
但我想在测试应用程序中写入外部存储。 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)。
【讨论】:
不幸的是,这只是访问主外部存储的替代品。我需要使用 Intent.ACTION_OPEN_DOCUMENT_TREE 访问辅助外部存储,我需要测试此功能。【参考方案2】:作为一种解决方法,您可以使用 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.
【讨论】:
我需要在测试应用程序中授予权限。但我什至不知道如何在 TEST 应用程序中显示系统“打开方式”对话框以便能够授予它,例如使用此 adb shell 输入...或手动。你有什么例子吗?以上是关于测试应用程序中的存储访问框架的主要内容,如果未能解决你的问题,请参考以下文章
SAF(存储访问框架)是不是解决了 Android 4.4(KitKat)中的 SD 卡 WRITE 问题?
如何使用 Quasar 框架访问 Vuex 存储模块操作中的 Vue 路由器?