13

我使用此代码使用 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);
}

文件浏览器打开时的问题我无法选择文件当我按下文件时似乎没有启用什么都没发生所以这段代码有什么问题
我从我的android手机
图像
上传了一个截图 提前谢谢

4

2 回答 2

11

换行:

chooseFile.setType("file/*");

chooseFile.setType("*/*");

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

于 2016-12-17T05:02:51.430 回答
11

文件的类型是 .txt

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

除此之外,删除getRealPathFromURI()(这不起作用)。没有道路,超越Uri自身。Uri你可以通过调用openInputStream()a来读取 this 标识的内容ContentResolver,你可以ContentResolver通过调用getContentResolver()你的Activity.

于 2016-12-16T22:37:40.737 回答