gzu-liyujiang / AndroidPicker

安卓选择器类库,包括日期及时间选择器(可用于出生日期、营业时间等)、单项选择器(可用于性别、民族、职业、学历、星座等)、二三级联动选择器(可用于车牌号、基金定投日期等)、城市地址选择器(分省级、地市级及区县级)、数字选择器(可用于年龄、身高、体重、温度等)、日历选日期择器(可用于酒店及机票预定日期)、颜色选择器、文件及目录选择器、图片选择器等……WheelPicker/DatePicker/TimePicker/OptionPicker/NumberPicker/LinkagePicker/AddressPicker/CarPlatePicker/CalendarPicker/ColorPicker/FilePicker/ImagePicker etc.
Other
6.46k stars 1.46k forks source link

文件选择器为什么只显示文件夹不显示文件 #322

Open Jun1093 opened 1 year ago

Jun1093 commented 1 year ago

您好!我这使用文件选择器显示文件夹却不显示文件,是因为我少设置某个属性了吗?因为文件选择器提供的说明太少所以不太清楚。我想显示storage-emulated-0下面以及其它文件夹的文件,而且还可以自己设置指定文件后缀类型,就比如“.kml”或“.kmz”等等,请问我要怎么做?

liyujiang-gzu commented 1 year ago

setExplorerMode指定选择模式,默认是选择文件夹而不是选择文件

liyujiang-gzu commented 1 year ago

@Jun1093 指定文件后缀用setAllowExtensions,如setAllowExtensions(new String[]{".kml", ".kmz"})

Jun1093 commented 1 year ago

@liyujiang-gzu 多谢指点!就是还有一点点建议,文件选择器那config里面有个获取文件监听,外面也有个获取文件监听,当你设置config以后在设置外面那个监听后打开就会闪退,一开始搞得我一头雾水,不知道什么情况,最后发现有两个监听,外面那个好像不能用,这个建议调整一下。

liyujiang-gzu commented 1 year ago

FilePicker#setOnFilePickedListener是老版本的用法,里面直接抛异常提示的,已加“@Deprecated”废弃标识。新版本全部把配置放到ExplorerConfig中了。

mHuZhipeng commented 1 year ago

似乎又不行了,按上述设置文件只能显示 .jpg 的file .txt .kml 都显示不出来

liyujiang-gzu commented 1 year ago

似乎又不行了,按上述设置文件只能显示 .jpg 的file .txt .kml 都显示不出来

SimpleFilter的代码逻辑是有点问题

mHuZhipeng commented 1 year ago

看你更新了,你这速度可以啊!但是我更新到 4.1.11 上述问题依然存在,然后我fork了一下你的项目,跑起来确实是修改好了; 是不是打包发布的过程出了什么问题,更新的代码没有发布成功啊; 感谢!

mHuZhipeng commented 1 year ago

2022-11-09 11:20:02.849 3011-3011/com.aiearth.drone.gy D/AndroidPicker: clicked path name: /sdcard/aie 2022-11-09 11:20:02.849 3011-3011/com.aiearth.drone.gy D/AndroidPicker: clicked file item: FileEntity{name='aie', file='sdcard/aie'} 2022-11-09 11:20:02.850 3011-3011/com.aiearth.drone.gy D/AndroidPicker: will load directory: sdcard/aie 2022-11-09 11:20:02.851 3011-3011/com.aiearth.drone.gy D/AndroidPicker: list dir sdcard/aie by filter com.github.gzuliyujiang.filepicker.filter.SimpleFilter 2022-11-09 11:20:02.952 3011-3011/com.aiearth.drone.gy D/AndroidPicker: Filter>>>extension of sdcard/aie/san_nan_zhen.jpg: jpg 2022-11-09 11:20:02.952 3011-3011/com.aiearth.drone.gy D/AndroidPicker: Filter>>>allow extensions is [.kml, .jpg, .txt, .png, .gif], contains: true 2022-11-09 11:20:02.952 3011-3011/com.aiearth.drone.gy D/AndroidPicker: Filter>>>extension of sdcard/aie/微信截图_20221020131456.png: png 2022-11-09 11:20:02.952 3011-3011/com.aiearth.drone.gy D/AndroidPicker: Filter>>>allow extensions is [.kml, .jpg, .txt, .png, .gif], contains: true 2022-11-09 11:20:02.952 3011-3011/com.aiearth.drone.gy D/AndroidPicker: Filter>>>pathname is directory: sdcard/aie/test 2022-11-09 11:20:02.953 3011-3011/com.aiearth.drone.gy D/AndroidPicker: spent: 102 ms, async=false, thread=Thread[main,5,main] 2022-11-09 11:20:02.953 3011-3011/com.aiearth.drone.gy D/AndroidPicker: files or dirs count: 3 2022-11-09 11:20:02.953 3011-3011/com.aiearth.drone.gy D/AndroidPicker: notify changed when data loaded: sdcard/aie 2022-11-09 11:20:02.954 3011-3011/com.aiearth.drone.gy D/AndroidPicker: spent: 103 ms, async=false, thread=Thread[main,5,main]

mHuZhipeng commented 1 year ago

2022-11-09 11:25:11.968 27475-27475/com.github.gzuliyujiang.demo D/AndroidPicker: clicked path name: /sdcard/aie 2022-11-09 11:25:11.968 27475-27475/com.github.gzuliyujiang.demo D/AndroidPicker: clicked file item: FileEntity{name='aie', file='sdcard/aie'} 2022-11-09 11:25:11.969 27475-27475/com.github.gzuliyujiang.demo D/AndroidPicker: spent: 1 ms, async=true, thread=Thread[main,5,main] 2022-11-09 11:25:11.969 27475-4758/com.github.gzuliyujiang.demo D/AndroidPicker: will load directory: sdcard/aie 2022-11-09 11:25:11.970 27475-4758/com.github.gzuliyujiang.demo D/AndroidPicker: list dir sdcard/aie by filter com.github.gzuliyujiang.filepicker.filter.SimpleFilter 2022-11-09 11:25:11.977 27475-4758/com.github.gzuliyujiang.demo D/AndroidPicker: Filter>>>allow extensions is empty: sdcard/aie/柿树岗镇.kml 2022-11-09 11:25:11.978 27475-4758/com.github.gzuliyujiang.demo D/AndroidPicker: Filter>>>allow extensions is empty: sdcard/aie/铭传乡.kml 2022-11-09 11:25:11.978 27475-4758/com.github.gzuliyujiang.demo D/AndroidPicker: Filter>>>allow extensions is empty: sdcard/aie/san_nan_zhen.jpg 2022-11-09 11:25:11.978 27475-4758/com.github.gzuliyujiang.demo D/AndroidPicker: Filter>>>pathname is directory: sdcard/aie/test 2022-11-09 11:25:11.978 27475-4758/com.github.gzuliyujiang.demo D/AndroidPicker: Filter>>>allow extensions is empty: sdcard/aie/nicework.txt 2022-11-09 11:25:11.978 27475-4758/com.github.gzuliyujiang.demo D/AndroidPicker: Filter>>>allow extensions is empty: sdcard/aie/san_nan_zhen.kml 2022-11-09 11:25:11.979 27475-4758/com.github.gzuliyujiang.demo D/AndroidPicker: Filter>>>allow extensions is empty: sdcard/aie/微信截图_20221020131456.png 2022-11-09 11:25:11.981 27475-4758/com.github.gzuliyujiang.demo D/AndroidPicker: spent: 12 ms, async=true, thread=Thread[pool-2-thread-9,5,main] 2022-11-09 11:25:12.018 27475-27475/com.github.gzuliyujiang.demo D/AndroidPicker: files or dirs count: 7 2022-11-09 11:25:12.019 27475-27475/com.github.gzuliyujiang.demo D/AndroidPicker: notify changed when data loaded: sdcard/aie

mHuZhipeng commented 1 year ago

已解决了,Android R (30)以上,这个权限分 访问所有文件的权限 访问媒体文件的权限 和 不允许访问;

liyujiang-gzu commented 1 year ago

已解决了,Android R (30)以上,这个权限分 访问所有文件的权限 访问媒体文件的权限 和 不允许访问;

是的,所以demo里我加了个申请文件管理权限的例子

Alex-wen1995 commented 1 year ago

我更新了最新的版本,但是在魅族手机(Android 11)的系统上,也是只有某些文件能看到,zip的看不到,png的也可以看到,我也没有做后缀名过滤,暂时不知道原因是什么