Как открыть файл SGF с внешним приложением в приложении android? - PullRequest
1 голос
/ 29 января 2020

Я пытаюсь открыть файл SGF (популярный формат для хранения go игр) во внешнем приложении. Мой текущий код удается запустить приложение, которое не может загрузить его по умолчанию. Кажется, я не могу изменить это поведение.

Использование других приложений для открытия файла приводит к противоречивому поведению. Обозреватель файлов сообщает, что нет приложения, способного открывать файлы sgf, и перенаправляет меня в магазин воспроизведения (независимо от того, какое приложение я впоследствии установил). Тем не менее, браузер inte rnet дает мне всплывающее окно, предлагающее выбрать одно из 2 подходящих приложений. Я хотел бы иметь такое же поведение в моем приложении, где пользователь может явно выбрать приложение, чтобы открыть его.

Мой текущий код (который, кажется, открывает приложение, показывает сообщение "не удалось загрузить 'и выходит, не выбрав исключение):

file = self.files[self.file_ix]
if platform == "android":
    from jnius import autoclass

    Intent = autoclass("android.content.Intent")
    Uri = autoclass('android.net.Uri')
    PythonActivity = autoclass("org.renpy.android.PythonActivity")
    try:
        intent = Intent()
        intent.setAction(Intent.ACTION_VIEW)
        intent.setDataAndType(Uri.parse(file), "application/x-go-sgf")
        PythonActivity.mActivity.startActivity(intent)
    except Exception as e:
        self.hint.text = f"No SGF Viewer found: {e}"
else:
    os.system(f"xdg-open '{file}'")

Как я могу изменить его, чтобы получить всплывающее окно с выбором приложений?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...