Ich entwickle eine Kreuzworträtsel-Anwendung, die .puz Datei als Eingabe akzeptiert. Ich versuchte den folgenden Code, in dem die Anwendung keine .puz Datei vom Standarddateimanager annimmt, während sie das annimmt und das Spiel anfängt, wenn es durch Datei-manager des Drittanbieters wie ES Dateimanager geschickt wird. Gibt es eine Möglichkeit, die Eingabe über den Standard-Dateimanager zu akzeptieren?.puz Dateiauswahl- Android
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();
}
}
}