【问题标题】:I can´t obtain actual path android file我无法获得实际路径android文件
【发布时间】:2016-04-20 12:02:09
【问题描述】:

我正在尝试使用 android 浏览器获取文件的完整路径。因此,我使用以下代码:

private void showFileChooser() {
        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.setType("*/*");
        intent.addCategory(Intent.CATEGORY_OPENABLE);

        try {
            startActivityForResult(
                    Intent.createChooser(intent, "Select a file"), FILE_SELECT_CODE);
        } catch (android.content.ActivityNotFoundException ex) {
            Toast.makeText(this, "You don't have a browser installed", Toast.LENGTH_SHORT).show();
        }
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(requestCode==FILE_SELECT_CODE && resultCode==Activity.RESULT_OK) {

                    // Get the Uri of the selected file
                    Uri uri = data.getData();
                    Log.d(TAG, "URI del archivo a enviar: " + uri.toString());
                    // Get the path
                    final String path=Environment.getExternalStorageDirectory().toString()+uri.getPath();
                    Log.d(TAG, "Path del archivo a enviar: " +path);
                    File archivoPruebaParaSaberSiExiste = new File(path);


                    if(archivoPruebaParaSaberSiExiste.exists()) {
                        Log.d(TAG,"File exists");
                    else{
                        Log.d(TAG,"File does not exist");
                    }

        }
        super.onActivityResult(requestCode, resultCode, data);
    }


 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

但是,我没有得到文件路径:

The file path which i get is: 
      /storage/emulated/0/data/external/images/media/1949

The actual path is: 
     /storage/emulated/0/DCIM/Camera/20165481_133918.jpg

我不知道发生了什么。

【问题讨论】:

    标签: android path


    【解决方案1】:

    我正在尝试使用 android 浏览器获取文件的完整路径。

    您没有选择文件。您正在挑选一段内容。不要求这是一个文件。

    但是,我没有得到文件路径

    同样,所选内容不必是文件。

    根据您的结果,您的Uri 的方案是content,而不是file。这是完全正常的,并且将来会成为Uri 的主要形式。要consume a content Uri,请使用ContentResolveropenInputStream() 之类的方法。

    【讨论】:

    • 非常感谢,对儿子很有帮助!
    • @CommansWare Android R 预览版已发布(记录文件路径访问)。我问了一个新问题,请你看看 - stackoverflow.com/questions/60360368/…
    • @HB.: 是的,我在你发布它时看到了它(虽然我忘了给它投票,我刚刚做了)。我希望在接下来的几周内为您提供答案。
    • @CommonsWare 谢谢。我期待着您的回音。
    猜你喜欢
    • 2022-08-04
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 1970-01-01
    • 2019-05-27
    相关资源
    最近更新 更多