Android设置默认文件管理器,使用默认资源管理器在Android中查看文件夹内容

我想以编程方式启动默认文件资源管理器以显示文件夹的内容.

我正在使用此代码,但它崩溃了:

Uri startDir = Uri.fromFile(new File("/sdcard/DCIM/Camera"));

Intent intent = new Intent();

intent.setAction(Intent.ACTION_VIEW);

intent.setData(startDir);

startActivity(intent);

LogCat显示“找不到处理意图的活动”……

我最好的选择是什么?我希望用户能够看到文件夹的内容并能够单击文件(例如,单击视频并使用默认播放器启动它,单击PDF并打开它等).

解决方法:

不幸的是,似乎没有标准的方法来做到这一点,我之前正在寻找完全相同的东西,但无法找到任何解决方案.有两种替代方法可能适合您:

1)使用一般意图并让用户选择他/她的文件管理器

这是安全和容易的,但与我们真正想要的有点远

Uri startDir = Uri.fromFile(new File(Environment.getExternalStorageDirectory()

.getAbsolutePath() + "/DCIM/Camera"));

Intent intent = new Intent();

intent.setData(startDir);

intent.setType("*/*");

intent.setAction(Intent.ACTION_VIEW);

startActivity(intent);

不要使用intent.setType(“file / *”);,它不是标准的MIME类型.

2)使用着名文件管理器提供的特定意图众所周知的文件管理器有自己的自定义意图过滤器,它们接受允许简单浏览的目录路径.其中一些在这里:OI file manager,ES Explorer

也许您可以检查用户是否安装了这些特定的文件管理器,然后使用此解决方案,否则回退到一般意图.

目前,这是您拥有的唯一两个选项.如果我找到更好的解决方案,我会更新这篇文章.

标签:android,android-intent

来源: https://codeday.me/bug/20190725/1533711.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值