android - 在 kitkat android 上找不到处理 Intent { act=android.intent.action.OPEN_DOCUMENT_TREE cat=[android.intent.category.DEFAULT] } 的活动
问题描述
我正在开发应用程序,我必须从外部存储中选择一个文件夹,然后我必须获取它的路径,然后将其传递给 fileobserver。一切正常。我正在使用此代码来选择目录:
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
intent.addCategory(Intent.CATEGORY_DEFAULT);
startActivityForResult(intent,RESULT_CODE);
它给了我这个界面: 目录选择器
问题:当我在 KITKAT 上运行应用程序时,它给了我上述异常。我已经在互联网上搜索了它,但找不到替代方案。我只想选择目录并在 kikat 上获取它的路径。
解决方案
ACTION_OPEN_DOCUMENT_TREE是在 API 21 (Lollipop) 中添加的 - 它在 API 19 (Kitkat) 设备上不存在,并且对于 pre-API 21 设备没有等效项。
READ_EXTERNAL_STORAGE
如果您想让用户在 Kitkat 设备上选择文件夹,您需要请求权限并从头开始构建您自己的文件浏览器。
推荐阅读
- android - 没有来自 MediaSessionCompat.Callback() 的回调
- ruby-on-rails - 如何提交一组复选框,以便数组中的每个元素都有一个(但只有一个)值?
- debugging - Firefox(v82、v83)(32 位)调试器 - 内联变量预览未启用 - 如何解决?
- php - 如何使用自定义产品属性值更新 woocommerce 销售价格?
- python - 为 Python 套接字重新使用相同的 TCP 端口
- java - 数组超出索引 从用户获取输入
- java - Java:使用对受保护方法的反射以空参数调用方法
- r - quantmod - 计量经济学初学者
- python - Flask-SQLAlchemy 与 Oracle 数据库的多对多关系
- cypress - 赛普拉斯未通过测试视频录制无法处理