我可以找到一些非常古老的文件选择器样本,但是现在可以使用更新的Intent
来实现。
我要加载和保存文件。这将是一个文本文件,但扩展名为.mfl
(我正在使用的扩展名为文件)。
我已经看到某人的图像代码(但仅用于加载):
Intent intent = new Intent();
// Show only images, no videos or anything else
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
// Always show the chooser (if there are multiple options available)
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
我需要在setType
中仅看到我的.mfl文件吗?
我已经有onActivityResult
做其他事情,因此需要创建自己的requestCode。我在想
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新手,我想你可以猜到。)
这大致正确吗?我需要做什么才能使它正常工作?
此外,如何修改它以获取文件保护对话框?
答案 0 :(得分:0)
尝试一下:
logger.error("Something went wrong", exception);
答案 1 :(得分:0)
对于自定义类型,您可以使用application/mfl
,因此您的Intent应该为:
//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);