Я пишу приложение для просмотра некоторых пользовательских двоичных данных для Android, используя Qt5.12.
Я добавил фильтр намерений к AndroidManifest.xml
, например, так:
<activity ...>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:mimeType="application/octet-stream" android:scheme="content" android:host="*" android:pathPattern=".*\\.xyz"/>
<data android:mimeType="application/octet-stream" android:scheme="file" android:host="*" android:pathPattern=".*\\.xyz"/>
</intent-filter>
...
</activity>
И это работает , если приложение было закрыто до : Android предлагает мое приложение, когда я пытаюсь открыть .xyz
файлы из Telegram или файлового браузера.Он работает как шарм.
Однако, , если приложение уже открыто в фоновом режиме при попытке открыть .xyz
-файл из Telegram, отображается новое пустое действие.Logcat говорит E Qt JAVA : Surface 1 not found!
Когда я затем перезапускаю Telegram и пытаюсь открыть файл снова (как раньше), появляется черный экран.
Related: https://stackoverflow.com/a/32895588/4248972. Ответ даже предоставляет пример приложения.У меня точно такие же проблемы с этим примером приложения.
Эта проблема не ограничивается Telegram, но также возникает с WhatsApp и ES File Explorer . Samsung My Files никогда не предлагает мое приложение, но, похоже, это отдельная проблема