android 文件选择

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 文件选择相关的知识,希望对你有一定的参考价值。

如何 调用系统的文件浏览器,能够选择 任何文件,返回文件路径+文件名。如何实现?

private void openFileBrowse() 
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");// 文件类型
Intent wrapperIntent = Intent.createChooser(intent, "打开方式");
startActivityForResult(wrapperIntent, 0);

protected void onActivityResult(int requestCode, int resultCode,
Intent intent) 
// String path;
if (resultCode == RESULT_OK) 
if (requestCode == 0) 
if (intent == null) 
Toast.makeText(this, "未选择任何文件", Toast.LENGTH_LONG).show();
return;

Uri uri = intent.getData();
if (uri == null) 
Toast.makeText(this, "未选择任何文件", Toast.LENGTH_LONG).show();
return;


String scheme = uri.getScheme();
//可能是content,file等等.需要判断其是不是file
 如果不是调用文件管理器,可能返回其他
 if (scheme != null
&& ("file".endsWith(scheme.toLowerCase()))
String path = uri.getPath();//文件路径


追问

能选择文件,并返回文件名,打开一个窗口上面有些选择按钮,音乐,图片,等
但文件查看器 有些手机找不到,没显示,有些能找到。能不能直接打开文件查看器。

追答

只能说这个手机没装有文件管理器.不能够直接打开文件查看器的,因为图片查看器等action 和文件查看器的action是一样的.可以Intent wrapperIntent = Intent.createChooser(intent, "请选择文件查看器");除非自己实现文件查看器.

参考技术A 自己写一个啊 参考技术B 百度上面都有

android自定义控件之文件选择

参考技术A 不多说,先上图:

列举当前目录下的所有文件,如果是选择目录,则不显示文件,如果是选择文件,则需要显示文件。

新建目录,就是在当前路径下新建目录,同时新建后的目录要能够及时显示在文件列表中。

需要读写权限,添加第三方权限请求库:

使用:

DialogFragment与Dialog有一些不同的地方,其中show方法需要传入FragmentManager

另外需在onCreateVie方法初始化布局,以及获取到控件

另外就是RecycleView,之所以采用RecycleView,是因为发现如果用ListView,内存会不断增加,很难降下来。

其中CommonAdapter继承自BaseAdapter,是通用的Adapter,兼容ListView:

这一部分逻辑有FileProvider类完成; 这里需要注意的是,有些手机不支持读取根目录,所以改为读取"/mnt/"作为根目录就行读取。

另外跳转目录都是改变当前路径,然后再刷新数据。

同时在其内部定义了FileData类:

文件选择,可以通过当前路径路径以及列表索引来唯一确定路径;都是,当跳转目录后,索引应该重置。

这里采用WeakReference记录选择的控件,但选择其他目录或者文件时,之前的控件需要重置一下状态。

https://github.com/xiaoyifan6/videocreator

该源码主要用于图片合成gif或者视频,其中文件选择弹窗是自己写的。感觉这个弹出应该有许多地方可以用到,所以写下这篇文章,方便以后参考查看。

以上是关于android 文件选择的主要内容,如果未能解决你的问题,请参考以下文章

Android编程 打开本地文件 文件选择器

android自定义控件之文件选择

Android文件选择器[关闭]

如何在android项目里导入apk文件

Android文件选择器 自动申请存储权限 适配安卓 4.4 ~ 13支持无root权限访问和操作Android/data和Android/obb目录

在android中选择特定类型的文件