Я пытаюсь открыть файл 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}'")
Как я могу изменить его, чтобы получить всплывающее окно с выбором приложений?