如何使用 Intent 在 android 上 Select 归档

How to Select File on android using Intent

我使用此代码对 select 任何类型的文件使用 Intent 并在我的应用程序中获取它的路径

    //this when button click
public void onBrowse(View view) {
    Intent chooseFile;
    Intent intent;
    chooseFile = new Intent(Intent.ACTION_GET_CONTENT);
    chooseFile.addCategory(Intent.CATEGORY_OPENABLE);
    chooseFile.setType("file/*");
    intent = Intent.createChooser(chooseFile, "Choose a file");
    startActivityForResult(intent, ACTIVITY_CHOOSE_FILE);
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode != RESULT_OK) return;
    String path     = "";
    if(requestCode == ACTIVITY_CHOOSE_FILE)
    {
        Uri uri = data.getData();
        String FilePath = getRealPathFromURI(uri); // should the path be here in this string
        System.out.print("Path  = " + FilePath);
    }
}

public String getRealPathFromURI(Uri contentUri) {
    String [] proj      = {MediaStore.Images.Media.DATA};
    Cursor cursor       = getContentResolver().query( contentUri, proj, null, null,null);
    if (cursor == null) return null;
    int column_index    = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}

文件浏览器打开时的问题 我无法 select 文件 它似乎在我按下文件时未启用 没有任何反应所以这段代码有什么问题
我从 android 手机
上传了一张截图 image
提前致谢

the type of a file is .txt

然后使用 text/plain 作为 MIME 类型。正如 Ian Lake 在评论中指出的那样,file/* 不是有效的 MIME 类型。

除此之外,删除 getRealPathFromURI()(这将不起作用)。除了 Uri 本身之外,没有其他路径。您可以通过在 ContentResolver 上调用 openInputStream() 来读取此 Uri 标识的内容,并且您可以通过在 [=] 上调用 getContentResolver() 来获取 ContentResolver 19=].

换行:

chooseFile.setType("file/*");

chooseFile.setType("*/*");

这将帮助您选择任何类型的文件。