鸿蒙开源组件——本地文件选择器框架。

jacksky
发布于 2021-8-19 11:45
浏览
1收藏

AndroidFilePicker

本项目是基于开源项目rosuH/AndroidFilePicker进行适用OHOS的移植和开发的, 可通过github地址https://github.com/rosuH/AndroidFilePicker 追踪到原项目

移植版本: 0.7.1

 

它没有像 Rocky,Cosmos 或是 Peppa 这样的名字。 File Picker 正如其名,是一个本地文件选择器框架。 他的一些特征如下所述:

  • 在 Ability 或 Slice 中启动
    • 从一行代码开始
  • 浏览当前应用本地存储中的所有文件(因鸿蒙沙盒设计,仅支持浏览自身应用目录下的所以文件)
    • 内置默认文件类型和文件鉴别器
    • 或者您可以自己实现文件类型
  • 内置了单选模式和多选模式
  • 自定义列表过滤器
    • 只想显示图片(或视频,音频......)? 没问题!
    • 当然,您也可只显示文件夹
  • 还有更多待您自己探索的特性(?)

下载使用

  1. 在你的项目中添加依赖

然后在子模块(app)的配置文件添加依赖:

dependencies {
    implementation 'com.gitee.ts_ohos:filepicker:1.0.1'
}

使用

权限

此库需要一个权限:

  • ohos.permission.READ_USER_STORAGE

如果您没有提前授予,这个库会自动申请该权限的。

开始使用

简单的链式调用示意:

FilePickerManager.INSTANCE()
                 .from(HomeAbilitySlice.this)
                 .forResult(FilePickerManager.REQUEST_CODE);

 

现在你已经起飞了🛩️...(真的只有两行)

获取结果

获取结果onAbilityResult接受消息,然后调用FilePickerManager.INSTANCE().obtainData()获取保存的数据,结果是所选取文件的路径列表(ArrayList<String>())

    @Override
    protected void onAbilityResult(int requestCode, int resultCode, Intent resultData) {
        super.onAbilityResult(requestCode, resultCode, resultData);
        switch (requestCode) {
            case FilePickerManager.REQUEST_CODE:
                if (resultCode == FilePickerManager.RESULT_OK) {
                    List<String> strings = FilePickerManager.INSTANCE().obtainData();
                    //do your work
                }
                break;
        }
    }

 

更多示例

可以参考HomeAbilitySlice.java中提供的示例代码

功能 & 特点

  1. 链式调用
  2. 默认选中实现
    • 点击条目(item)无默认实现
    • 点击CheckBox为选中
  3. 默认实现多种文件类型
    • 实现IFileType接口来实现你的文件类型
    • 实现AbstractFileType抽象类来实现你的文件类型甄别器
  4. 公开文件过滤接口
    • 实现AbstractFileFilter抽象类来定制你自己的文件过滤器,这样可以控制文件列表的展示内容
  5. 多种可配置选项
    1. 选中时是否忽略文件夹
    2. 是否显示隐藏文件夹(以符号.开头的,视为隐藏文件或隐藏文件夹)

License

MIT License

Copyright (c) 2018 

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
 

file-picker-master.zip 186.12K 82次下载
已于2021-8-19 11:45:23修改
2
收藏 1
回复
举报
1条回复
按时间正序
/
按时间倒序
wx61a5d0f7de684
wx61a5d0f7de684

请问博主:如果我用真机模拟运行APP那么这个自身目录下的文件是空的么

回复
2021-11-30 18:07:00
回复
    相关推荐