цикл onActivityResult несколько раз, когда я пытаюсь получить путь JSON-файла - PullRequest
0 голосов
/ 25 февраля 2019

Как и заголовок, я хочу получить путь к Json-файлу с помощью Intent, но цикл onActivityResult несколько раз, прежде чем я получу результат.

Вот мой код:

private void openProjectFile() {
    fileChooser("*/*");
}

private void openAudioFile() {
    fileChooser("audio/*");
}

private void fileChooser(String type){
    System.out.println("file chooser");
    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    intent.setType(type);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    if (type == "*/*")
        startActivityForResult(intent, JSON_PROJECT);
    else
        startActivityForResult(intent, REQUEST_CODE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent Data) {
    super.onActivityResult(requestCode,resultCode,Data);
    System.out.println("requestCode: " + requestCode + " : " + resultCode);
    if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) {
        if (Data != null) {
            Uri uri = Data.getData();
            String audioFilePath = uri.getPath().toString();
            System.out.println("audio path: " + audioFilePath);
    } else if (requestCode == JSON_PROJECT && resultCode == Activity.RESULT_OK) {
        Uri uri = Data.getData();
        String jsonFilePath = uri.getPath().toString();
        System.out.println("file path: " + jsonFilePath);
    }
}

После несколькихвремя выбрать файл JSON, я получил это в Logcat: enter image description here

Но это нормально, когда я пытаюсь открыть звуковой файл.Может кто-нибудь показать мне, как это исправить?Заранее благодарен!

...