Android调用系统自带的文件管理器进行文件选择并获得路径,android文件管理器
16lz
2021-01-23
(转)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
更多相关文章
- Android 文件的保存与读取之SDCard(SD卡)存储
- Android Studio共用Eclipse的Android项目文件
- Android布局文件中命名空间的解析
- android中解析文件的三种方式
- Android如何获取多媒体文件信息
- [置顶] Android中对Log日志文件的分析
- 分享自己在项目中对android文件系统的一些认识
- 无废话Android之android下junit测试框架配置、保存文件到手机内
- Android动态加载外部jar包及jar包中图片等资源文件