Мне удалось отредактировать файл манифеста так, чтобы мое приложение Android могло получать файлы с определенным расширением файла из приложений обмена сообщениями через намерения:
<intent-filter>
<!-- needed for properly formatted email messages -->
<data
android:scheme="content"
android:mimeType="application/vnd.eureka"
android:pathPattern=".*\\.cw" />
<!-- needed for mangled email messages -->
<data
android:scheme="content"
android:mimeType="application/eureka"
android:pathPattern=".*\\.cw" />
<!-- needed for mangled email messages -->
<data
android:scheme="content"
android:mimeType="application/octet-stream"
android:pathPattern=".*\\.cw" />
<data
android:scheme="content"
android:mimeType="*/*"
android:pathPattern=".*\\.cw" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
<!-- Register to handle file opening -->
<intent-filter>
<data android:scheme="file"
android:mimeType="*/*"
android:pathPattern=".*\\.cw"
android:host="*"/>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
Это хорошо работает, когда мое приложение не работает до того, как онодолжен получить файл или когда намерение исходит от WhatsApp или приложения GMail.
Однако, когда приложение уже запущено в фоновом режиме, и вы пытаетесь открыть файл с ним из мессенджера Telegram, второй экземпляр приложения создается, по-видимому, внутри Telegram (переключатель приложения показывает два экземпляраприложение: одно с надписью "Eureka" / название приложения и одно с надписью Telegram).Это приводит к тому, что приложение перестает отвечать на запросы.Это даже случается с новыми проектами, поэтому я подозреваю, что приложения Delphi не поддерживают наличие нескольких экземпляров (я разрабатываю в Delphi 10 Seattle).
Я хотел бы, чтобы намерение было открыто в экземпляре, уже работающем в фоновом режиме.чтобы избежать этой проблемы.
LaunchMode уже установлен на "singleTask", и я изменил его на "singleInstance" без успеха.