上传文件功能,选择本地文件action

最近在做一个即时通讯,选择文件上传功能.
当我点击按钮选择要上传的文件时的action,使用

 Intent i=new Intent();
        i.setAction(Intent.ACTION_GET_CONTENT);
        i.setType("*/*");
        startActivityForResult(i,20);
        
    这样可以打开文件管理器,但是一直很不懂setType
    setType("image/*");  是打开图片文件
    setType(“audio/*”); 是打开音频
    问题是:
    setType("*/*");  是打开所有类型的文件吗?
    setType("file/*");  要怎么理解?
    
    在onActivityResult返回值中我需要获取到点击文件的路径用于上传文件,如何获取?,希望有大神指点指点
       
阅读 5.2k
1 个回答

对于setType要设置什么值你得先去看一下Android MIME,你就能知道应该对应的传什么类型了。MIME中没有"file/"这种类型,"*/*"是指所有MIME文件。onActivityResult的返回值中有Intent data,通过data可以获取你选择的文件路径。

Uri uri = data.getData();
String path = uri.getPath();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题