Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 文件选择器的意图_Android_Filepicker - Fatal编程技术网

Android 文件选择器的意图

Android 文件选择器的意图,android,filepicker,Android,Filepicker,我可以找到一些非常旧的文件选取器示例,但我认为现在可以使用更为最新的Intent来完成 我想加载和保存文件。它将是一个文本文件,但扩展名为.mfl(我正在使用的文件扩展名) 我看过一些人的图像代码(但只是用于加载): 在setType中我需要什么才能只查看我的.mfl文件? 我已经有一个onActivityResult在做其他事情,所以需要创建自己的请求代码。我在想 int PICK_MYFILE_REQUEST = 1001; 因此,我认为我的onActivityResult需要如下所示:

我可以找到一些非常旧的文件选取器示例,但我认为现在可以使用更为最新的
Intent
来完成

我想加载和保存文件。它将是一个文本文件,但扩展名为
.mfl
(我正在使用的文件扩展名)

我看过一些人的图像代码(但只是用于加载):

setType
中我需要什么才能只查看我的.mfl文件?

我已经有一个
onActivityResult
在做其他事情,所以需要创建自己的请求代码。我在想

int PICK_MYFILE_REQUEST = 1001;
因此,我认为我的
onActivityResult
需要如下所示:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if(/* doing my other stuff */){
    } else if (requestCode == PICK_MYFILE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {

        Uri uri = data.getData();

        try {
            /* load the file */
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
正如你们所看到的,我想我可能就快到了,但不完全确定我该做什么。(我是Android新手——我想你可以猜到。)

这大致正确吗?我需要做什么才能让它正常工作?


另外,如何修改此对话框以获得文件保护程序对话框?尝试此操作:

    Intent intent = new Intent();
    intent.setType("application/pdf");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); // temp permission for receiving app to read this file

对于自定义类型,您可以使用
应用程序/mfl
,因此您的目的应该是:

//Use ACTION_OPEN_DOCUMENT to get read/write permission
Intent intent = new Intent(Intent.Intent.ACTION_OPEN_DOCUMENT);
//"application/mfl" to request only .mfl files
intent.setType("application/mfl");
//Request readable files
intent.addCategory(Intent.CATEGORY_OPENABLE)
startActivityForResult(Intent.createChooser(intent, "Select File"),PICK_MYFILE_REQUEST);
//Use ACTION_OPEN_DOCUMENT to get read/write permission
Intent intent = new Intent(Intent.Intent.ACTION_OPEN_DOCUMENT);
//"application/mfl" to request only .mfl files
intent.setType("application/mfl");
//Request readable files
intent.addCategory(Intent.CATEGORY_OPENABLE)
startActivityForResult(Intent.createChooser(intent, "Select File"),PICK_MYFILE_REQUEST);