当前位置:首页 > 技术心得 > 正文内容

Android调用系统自带的文件管理器进行文件选择

xjtudll10年前 (2016-11-29)技术心得30360

参考资料:

http://blog.csdn.net/zqchn/article/details/8770913

http://www.xuebuyuan.com/929105.html

调用系统自带的文件管理器来选择文件

 

 
 
 
private void showChooser() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
try {
startActivityForResult(intent,EX_FILE_PICKER_RESULT);
} catch (android.content.ActivityNotFoundException ex) {
//Toast.makeText(this, "亲,木有文件管理器啊-_-!!", Toast.LENGTH_SHORT).show();
}

}

在catch,我们可以做更多的操作,比如会跳转到一个下载文件管理器的页面或者等等。

 

 

 

对于返回的数据怎么处理呢。在onActivityResult里处理。

如下:

/** 根据返回选择的文件,来进行操作 **/
 

 

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if (resultCode != Activity.RESULT_OK) {
Log.e(TAG, "onActivityResult() error, resultCode: " + resultCode);
super.onActivityResult(requestCode, resultCode, data);
return;
}
if (requestCode == EX_FILE_PICKER_RESULT) {
Uri uri = data.getData();
String name = GetPathFromUri4kitkat.getPath(this,uri);
try {
String lowercaseName = name.toLowerCase();
if (lowercaseName.endsWith(".bin")) {
logNLS("选择了bin文件");
logNLS("文件路径:" + name);
loadFile(name, false);
} else {
logNLS("文件格式错误");
}
}
catch (Exception ignore){

}

}
super.onActivityResult(requestCode, resultCode, data);

}

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/428/

标签: Android
分享给朋友:

“Android调用系统自带的文件管理器进行文件选择” 的相关文章

堪称一绝的“IO口扫键”法

堪称一绝的“IO口扫键”法

在做项目(工程)的时候,我们经常要用到比较多的按键,而且IO资源紧张,于是我们就想方设法地在别的模块中节省IO口,好不容易挤出一两个IO口,却发现仍然不够用,实在没办法了就添加一个IC来扫键。一个IC虽然价格不高,但对于大批量生产而且产品利润低的厂家来说,这是一笔不菲的开支! 那,我们能不能想到比较...

Protel99SE自动编号

Protel99SE自动编号

说到Protel99SE的自动编号,大家想到的肯定是Tools->Annotate,如图所示。 但是这种方法有个很大的缺点,虽然可以设置自动编号的方向,但是编号却不尽如人意。例如,我想让某一部分元件的编号是连续的,但是用此方法所得的编号很难保证连续。这样的话给绘制PCB的工作带来了很大麻...

利用Excel绘制时序波形

利用Excel绘制时序波形

以Excel2007为例。 打开Excel,点击绘制表格边框按钮,如图所示。 利用“绘图边框”,按照自己的想法绘制波形,如下图所示。 拷贝波形,粘贴到Word。...

两个路由器连接设置

两个路由器连接在一起,有两种方式,为表述方便,以A、B代替路由器名称 一、A路由器当路由器用,B路由器当交换机用 组网方式:A的LAN口接B的任意一个LAN口,A和B的其余LAN口接PC,两台路由器最多可供6台PC上网。 A路由器的设置方式就不说了,重点是要开启DHCP,且要设置自动分配的IP范围...

C# WinForm中禁止改变窗口大小的方法

C# WinForm中禁止改变窗口大小的方法

在Form类下面有一个FormBorderStyle的字段,我们可以通过设置它的值来让窗体不能被拉大拉小。FormBorderStyle的值设置为FormBorderStyle.FixedSingle或Fixed3D时,窗体大小是不能被改变的。 当然,还有一种情况,我们也应该要考虑到,那就是窗体最...

12点是AM还是PM

12点是AM还是PM

中午12点是AM还是PM,有很多人会搞混。有说是AM的,也有说是PM的。 先说说AM和PM的含义吧 AM:ante meridiem(来自拉丁文) PM:post meridiem(来自拉丁文) 那么12点究竟是AM还是PM呢?一般习惯说中午十二点为12 PM, 深夜十二点为12 AM,正式用法是&...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。