【问题标题】:Upload files from phone intent从手机意图上传文件
【发布时间】:2016-12-26 13:30:23
【问题描述】:

我有一个 android 应用程序,用户在活动中从手机内存中选择一张图片,然后使用 Action Pick Intent 将其上传到服务器

Intent i = new Intent(Intent.ACTION_PICK,
            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    startActivityForResult(i, RESULT_LOAD_IMAGE);

但是;现在需求发生了变化,客户想要上传任何扩展名的文件,我应该使用什么意图来打开手机的内存(如文件管理器)并选择我想要的任何内容?

感谢你们,现在我正在使用获取内容意图:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    intent.setType("*/*");
    startActivityForResult(intent, 1);

但问题在于结果的启动活动

 @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == Activity.RESULT_OK) {
        if (requestCode == 1) {
            Log.d("select pivture", "passed her");
            Uri selectedMediaUri = data.getData();

            String Fpath = selectedMediaUri.getPath();

            Log.d("Fpath", Fpath);
}

我得到如下:

/document/primary:Download/tool208.pdf

这不是我想要的,我想要这样的路径:

/external/images/media/6634

【问题讨论】:

标签: android android-intent upload startactivityforresult


【解决方案1】:

使用以下方法:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(intent, PICKFILE_REQUEST_CODE);

更新

   @Override  
   protected void onActivityResult(int requestCode, int resultCode, Intent data)  
   {  
          super.onActivityResult(requestCode, resultCode, data);  
         if(requestCode==PICKFILE_REQUEST_CODE){  
         }  
 }  

【讨论】:

  • 注意:您的手机必须有任何外部文件浏览器应用程序。
  • 为什么我不能选择pdf文件?
  • file/* 不是有效的 MIME 类型。使用*/*
  • 能否提供活动结果代码,以便我可以检索所选文件的路径?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多