Android Java filepicker选择应用程序来挑选文件

时间:2017-10-06 09:35:27

标签: java android upload filepicker

假设我想上传图片或文本文档 当我点击按钮选择文件 我如何制作它以便显示一堆应用程序弹出窗口我可以选择查看文件并选择上传,如图所示enter image description here

我目前有这个

   public void sendFile(View view) {
    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    intent.setType("*/*");
    startActivityForResult(intent, READ_REQUEST_CODE);
}

但这直接适用于文档并且不允许我选择像gallery或MEGA这样的应用程序

关于如何实现这个的任何想法?

2 个答案:

答案 0 :(得分:0)

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class AndroidPick_a_File extends Activity {

 TextView textFile;

 private static final int PICKFILE_RESULT_CODE = 1;

   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);

       Button buttonPick = (Button)findViewById(R.id.buttonpick);
       textFile = (TextView)findViewById(R.id.textfile);

       buttonPick.setOnClickListener(new Button.OnClickListener(){

   @Override
   public void onClick(View arg0) {
    // TODO Auto-generated method stub

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

   }});
   }

 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  // TODO Auto-generated method stub
  switch(requestCode){
  case PICKFILE_RESULT_CODE:
   if(resultCode==RESULT_OK){
    String FilePath = data.getData().getPath();
    textFile.setText(FilePath);
   }
   break;

  }
 }
}

main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   >

<Button
   android:id="@+id/buttonpick"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:text="- PICK a file -"
   />
<TextView 
   android:id="@+id/textfile"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   />
</LinearLayout>

enter image description here

答案 1 :(得分:0)

您必须了解文件选择必须通过Android系统的文件选择器完成。其他应用程序,如驱动器和Dropbox将在左侧的导航抽屉上收听。 Mega应该在其中包含代码,以便在Android系统的文件选择器中显示其内容。这就是应该如何。 Android使文件选择过程统一。

虽然共享文件并非如此。在这种情况下,您可以选择从您发布的屏幕截图中选择

enter image description here