(转)Android调用系统自带的文件管理器进行文件选择并获得路径,android文件管理器


Android区别于iOS的沙盒模式,可以通过文件浏览器浏览本地的存储器。Android API也提供了相应的接口。

基本思路,先通过Android API调用系统自带的文件浏览器选取文件获得URI,然后将URI转换成file,从而得到file。

调用系统自带的文件浏览器

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button btn= (Button) findViewById(R.id.btn);        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);                intent.setType("*/*");//设置类型,我这里是任意类型,任意后缀的可以这样写。                intent.addCategory(Intent.CATEGORY_OPENABLE);                startActivityForResult(intent,1);            }        });    }}
 intent.setType(“image/*”);//intent.setType(“audio/*”); //选择音频//intent.setType(“video/*”); //选择视频 (mp4 3gp 是android支持的视频格式)//intent.setType(“video/*;image/*”);//同时选择视频和图片

回调

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {    if (resultCode == Activity.RESULT_OK) {//是否选择,没选择就不会继续        Uri uri = data.getData();//得到uri,后面就是将uri转化成file的过程。        String[] proj = {MediaStore.Images.Media.DATA};        Cursor actualimagecursor = managedQuery(uri, proj, null, null, null);        int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);        actualimagecursor.moveToFirst();        String img_path = actualimagecursor.getString(actual_image_column_index);        File file = new File(img_path);        Toast.makeText(MainActivity.this, file.toString(), Toast.LENGTH_SHORT).show();    }}

onActivityResult函数响应了选择文件的操作。

 转载来至:http://www.banbaise.com/archives/614

更多相关文章

  1. Android与IOS异同点对比(1)------ 显示
  2. Android启动过程——init,Zygote,SystemServer
  3. xmlns:android="http://schemas.android.com/apk/res/android作
  4. Android(安卓)下led 的控制(上)--Android部分
  5. 使用VirtualBox在PC上安装Android(安卓)OS
  6. Android(安卓)JNI 机制
  7. 刚刚接触Android,写第一个Hello world 小项目笔记
  8. Android工程手动增加插件包方法
  9. Android(安卓)Studio(二)从Eclipse的迁移到Android(安卓)Studio

随机推荐

  1. Android(安卓)get layout height and wid
  2. Android(安卓)SQLite数据库学习笔记
  3. No 93 · android xml的生成和解析
  4. JAVA按钮显示用户名+密码
  5. android笔记4-xml解析
  6. Android(安卓)Studio Button按钮点击事件
  7. android 中的编译选项的对应关系
  8. Android打包常见问题的解决办法
  9. 边框的两种写法
  10. android学习--画圆角图