android - 如何使用 Intent 在 Android 上选择文件

标签 android android-intent android-afilechooser

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

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

最佳答案

the type of a file is .txt

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

除此之外,删除 getRealPathFromURI()(这将不起作用)。除了 Uri 本身之外,没有路径。你可以在一个ContentResolver上调用openInputStream()读入这个Uri标识的内容,你可以得到一个ContentResolver 通过在您的 Activity 上调用 getContentResolver()

关于android - 如何使用 Intent 在 Android 上选择文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41193219/

相关文章:

android - 如何过滤android文件选择器应用程序

java - 单独的 TCP/SSL 连接用于身份验证,而 UDP 连接用于主要流量?

java - 在 Android Emulator 上安装大 .apk 需要很长时间

android - 从接收器启动 android Activity (在正在运行的服务中)

Android视频播放器开始使用 Intent ,如何知道播放器何时停止

android - 如何暂停父 Activity 直到子 Activity 完成

java - 通过 Maven 或 Eclipse 使用和检查 Android 支持注释(无需 Android Studio)

java - Android:用于 ListView 基本适配器实现的项目单击监听器

Android 文件选择器不从 Android Webview 调用