Java Android:打开文件浏览器以获取文件路径

Java Android:打开文件浏览器以获取文件路径,java,android,Java,Android,我一直在试图找到一种方法,让我的应用程序打开一个文件浏览器,用户可以在其中选择一个视频文件,并将我的应用程序存储到一个字符串中以供以后使用。是否有我可以使用的意图或功能?有什么建议吗?这是我以前的一个项目中使用的代码 Intent intent = new Intent(); intent.setType("video/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createCho

我一直在试图找到一种方法,让我的应用程序打开一个文件浏览器,用户可以在其中选择一个视频文件,并将我的应用程序存储到一个字符串中以供以后使用。是否有我可以使用的意图或功能?有什么建议吗?

这是我以前的一个项目中使用的代码

Intent intent = new Intent();
intent.setType("video/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Video "), 33);

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        if (requestCode == 33) {
            Uri selectedMediaUri = data.getData();
            filemanagerstring = selectedMediaUri.getPath();
            selectedMediaPath = getPath(selectedMediaUri);
            if (!selectedMediaPath.equals("")) {
                filePath = selectedMediaPath;
            } else if (!filemanagerstring.equals("")) {
                filePath = filemanagerstring;
            }
            int lastIndex = filePath.lastIndexOf("/");
            fileName = filePath.substring(lastIndex+1);
            //filepath is your file's path
        }
    }
}
public String getPath(Uri uri) {
    String[] projection = { MediaStore.MediaColumns.DATA };
    Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
    if (cursor != null) {
        // HERE YOU WILL GET A NULLPOINTER IF CURSOR IS NULL
        // THIS CAN BE, IF YOU USED OI FILE MANAGER FOR PICKING THE MEDIA
        int column_index = cursor
                .getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    } else
        return "";
}

下面是我以前的一个项目中使用的代码

Intent intent = new Intent();
intent.setType("video/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Video "), 33);

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        if (requestCode == 33) {
            Uri selectedMediaUri = data.getData();
            filemanagerstring = selectedMediaUri.getPath();
            selectedMediaPath = getPath(selectedMediaUri);
            if (!selectedMediaPath.equals("")) {
                filePath = selectedMediaPath;
            } else if (!filemanagerstring.equals("")) {
                filePath = filemanagerstring;
            }
            int lastIndex = filePath.lastIndexOf("/");
            fileName = filePath.substring(lastIndex+1);
            //filepath is your file's path
        }
    }
}
public String getPath(Uri uri) {
    String[] projection = { MediaStore.MediaColumns.DATA };
    Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
    if (cursor != null) {
        // HERE YOU WILL GET A NULLPOINTER IF CURSOR IS NULL
        // THIS CAN BE, IF YOU USED OI FILE MANAGER FOR PICKING THE MEDIA
        int column_index = cursor
                .getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    } else
        return "";
}
使用下面的代码

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;

}
}
使用下面的代码

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;

}
}

您可以通过意向选择器来实现。试试这个代码,我认为这个解决方案解决了你的问题

                    Intent intent = new Intent();
                    intent.addCategory(Intent.CATEGORY_OPENABLE);
                    // Set your required file type  
                    intent.setType("*/*");
                    intent.setAction(Intent.ACTION_GET_CONTENT);
                    startActivityForResult(Intent.createChooser(intent, "DEMO"),1001);
然后是onActivityResult方法

public void onActivityResult(int requestCode, int resultCode,
                Intent data) {
            // TODO Auto-generated method stub
            super.onActivityResult(requestCode, resultCode, data);

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

            if (requestCode == 1001) {
                Uri currFileURI = data.getData();
                String path=currFileURI.getPath();
            }}

您可以通过意向选择器来实现。试试这个代码,我认为这个解决方案解决了你的问题

                    Intent intent = new Intent();
                    intent.addCategory(Intent.CATEGORY_OPENABLE);
                    // Set your required file type  
                    intent.setType("*/*");
                    intent.setAction(Intent.ACTION_GET_CONTENT);
                    startActivityForResult(Intent.createChooser(intent, "DEMO"),1001);
然后是onActivityResult方法

public void onActivityResult(int requestCode, int resultCode,
                Intent data) {
            // TODO Auto-generated method stub
            super.onActivityResult(requestCode, resultCode, data);

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

            if (requestCode == 1001) {
                Uri currFileURI = data.getData();
                String path=currFileURI.getPath();
            }}

我不知道你想要什么。我在问如何让我的应用程序打开文件浏览器,以便用户可以选择视频。然后,我的应用程序将获取用户选择的视频路径,并将其存储到字符串中。我不确定您要求的是什么。我问的是如何让我的应用程序打开文件浏览器,以便用户可以选择视频。然后,我的应用程序将获取用户选择的视频路径,并将其存储到字符串中。