我需要创建将打开文件管理器(如果已安装)的意图,并且我希望文件管理器仅向用户显示 txt 文件,因此用户无法选择扩展名错误的文件。
private static final int FILE_SELECT_CODE = 0;
private void showFileChooser() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
try {
startActivityForResult(
Intent.createChooser(intent, "Select txt file"),
FILE_SELECT_CODE);
} catch (android.content.ActivityNotFoundException ex) {
// Potentially direct the user to the Market with a Dialog
Toast.makeText(this.getActivity(), "Please install a File Manager.",
Toast.LENGTH_SHORT).show();
}
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case FILE_SELECT_CODE:
if (resultCode == Activity.RESULT_OK) {
// Get the Uri of the selected file
Uri uri = data.getData();
String path = uri.getPath();
input = new File(path);
try {
txtParser = new TxtFileParser(input);
} catch (FileNotFoundException e) {
/* Exception handler must be here! */
}
}
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
我设法做到了。但我不知道如何定义 txt 扩展名。