我正在开发一个填字游戏应用程序,它可以接受 .puz 文件作为输入。我尝试了以下代码,但应用程序不能从默认文件管理器中接受 .puz 文件,但当通过第三方文件管理器(如 ES 文件管理器)发送时,则可以接受并开始游戏。是否有办法使其通过默认文件管理器接受输入?
public void loadFile(View view){
Intent intent = new Intent(MediaStore.Files.FileColumns.DATA);
intent.setType("*/*");
intent.putExtra("CONTENT_TYPE", "*/*");
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select PUZ file"), 1);
}
//selected file will be processed here
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == 1){
if(resultCode == RESULT_OK){
String path = getPath(data.getData());
if(path!=null&&path.endsWith("puz")) {
try {
PuzzleDatabaseHelper dbHelper = WordsWithCrossesApplication.getDatabaseHelper();
Intent intent = new Intent(Intent.ACTION_EDIT, null, this, PlayActivity.class);
intent.putExtra(PlayActivity.EXTRA_PUZZLE_ID, dbHelper.addPuzzle(new File(path),"dilip","",0));
this.startActivity(intent);
} catch (Exception e) {
}
}
else
Toast.makeText(this, "Invalid Format or Try different File Manager to select file", Toast.LENGTH_SHORT).show();
}
}
}